我不知道它是否可能重复。测试我的代码,有时候我错了,因为如果条件允许,我会将=
而非==
或===
放入:
考虑以下代码:
var a = 0;
if(a = 1) console.log('true');
我不知道为什么这不是错误,为什么返回true条件(a = 1)
我想它的作用是将1
分配给a
变量,但是为什么评估为true并且没有错误?
答案 0 :(得分:3)
您将a设置为1,然后检查结果的真实性。 JavaScript中的非零数字是正确的,因此您可以得到所看到的内容。
就像在数学中一样,事物是从左到右评估的,而事件是先行的。
答案 1 :(得分:1)
正如所说,它确实分配给你的变量,并且对于0以外的所有值都将返回true。
避免这类错误的一种方法是改变测试。
if( 3 == a)
如果您曾写过(3 = a)
,那么您会收到错误。