设置为负数的变量计算结果为true

时间:2016-05-03 21:26:48

标签: javascript

这个javascript控制台日志让我很困惑。 如果在if语句中将具有值-1的x评估为真,那么它在前面的行之前是假的吗?感谢

x = -1
-1
x == true
false
if(x){console.log('yes')}
yes

2 个答案:

答案 0 :(得分:1)

当你在if语句中测试x时,你不会检查x是否属实,你是否正在检查x是否真实。 javascript中的真实性规则是:

空字符串是假的。所有其他字符串都是真实的。 0NaN是假的。所有其他数字都是真实的。 所有对象和数组都是真实的。 nullundefined是假的。

答案 1 :(得分:0)

if(-1){console.log('yes')}

在控制台中打印“是”,因为 -1 ,除 0 以外的其他数字是 truthey 值,尽管 -1 不等于 true

Here是扩展与javascript truthey和falsey值相关的知识的良好来源。