Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么x=0等于x='';_Javascript - Fatal编程技术网

Javascript 为什么x=0等于x='';

Javascript 为什么x=0等于x='';,javascript,Javascript,我不明白为什么不根据下面的代码调用下面的console.log。x当然不等于“”,因为它被设置为0 var x=0; 如果(x!=''){ console.log('here',x); }您需要使用==而不是= var x=0; 如果(x!=''){ console.log('here',x); }这里有一篇很好的文章解释JavaScript中的“真实性”和“错误性”: 要避开它,请使用严格的比较这是因为0是一个伪值() 如果要检查确切的类型和值,请尝试===运算符 if (x === 0

我不明白为什么不根据下面的代码调用下面的console.log。x当然不等于“”,因为它被设置为0

var x=0;
如果(x!=''){
console.log('here',x);

}
您需要使用
==而不是
=

var x=0;
如果(x!=''){
console.log('here',x);

}
这里有一篇很好的文章解释JavaScript中的“真实性”和“错误性”:


要避开它,请使用严格的比较这是因为0是一个伪值()

如果要检查确切的类型和值,请尝试===运算符

if (x === 0) console.log("zero here)

这是因为您正在使用

将两个值转换为公共类型后,Lose equality会比较两个值是否相等。转换后(一方或双方可能进行转换),最终相等比较的执行方式与
==
执行的方式完全相同

=
将两个操作数转换为公共类型。这里的
0
Number
,因此它将使用
Number(“”)
'
转换为
Number
,并且
Number(“”)返回
0
,这就是
0=='
的原因
如果要避免这种情况,可以使用
==
==

console.log(编号(“”))//0
var x=0;
如果(x!=''){
console.log('here',x);

}
另请参见仅在
falsy/truthy
上运行的JavaScript比较。您需要使用
==
===
来比较类型。
if (x === 0) console.log("zero here)