如果(a = 1)为真

时间:2016-04-27 15:59:56

标签: javascript if-statement

我不知道它是否可能重复。测试我的代码,有时候我错了,因为如果条件允许,我会将=而非=====放入:

考虑以下代码:

var a = 0;
if(a = 1) console.log('true'); 

我不知道为什么这不是错误,为什么返回true条件(a = 1) 我想它的作用是将1分配给a变量,但是为什么评估为true并且没有错误?

2 个答案:

答案 0 :(得分:3)

您将a设置为1,然后检查结果的真实性。 JavaScript中的非零数字是正确的,因此您可以得到所看到的内容。

就像在数学中一样,事物是从左到右评估的,而事件是先行的。

答案 1 :(得分:1)

正如所说,它确实分配给你的变量,并且对于0以外的所有值都将返回true。

避免这类错误的一种方法是改变测试。

if( 3 == a)

如果您曾写过(3 = a),那么您会收到错误。