gpt4 book ai didi

javascript - Javascript 与 Java 中的“&&”运算符

转载 作者:数据小太阳 更新时间:2023-10-29 04:26:53 25 4
gpt4 key购买 nike

我目前正在阅读 JavaScript: The Definitive Guide 中的 JavaScript。在第76页,写着这样一句话,

o && o.x // => 1: o is truthy, so return value of o.x

作为一名 Java 程序员,我想问一下,为什么它返回 1 而不是 'true' 在 Java 中情况并非如此,但无论如何我知道 JavaScript 是不同的,但逻辑与机制是到处都一样。(在 C 中它返回 1 为真。)

我想问的是,为什么这种行为完全有意义?
有什么办法可以确保只返回 true 或 false 值?

最佳答案

根据 Binary Logical Operators 的规范

The value produced by a && or || operator is not necessarily of type Boolean. The value produced will always be the value of one of the two operand expressions.

这是 javascript 中经常使用的一个功能,一个常见的用例是为 undefined variable 分配默认值。就像假设您期望一个选项对象作为参数但不是强制性的,因此用户可能不会传递它

function x(options){
options = options || {};
//now your can access optionx.a without fearing whether options is undefined
}

你可以做类似!!(o && o.x) 的事情来总是得到真/假

关于javascript - Javascript 与 Java 中的“&&”运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30772501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com