这是一个理论问题,因为我无法想象任何实际用途。
我今天做了一个大胆的声明,说在JavaScript中,以下内容总是会返回true:
if (x=y){
//code
}
//code
,无论是什么,都会被执行。
这是不输入==
甚至===
的典型错字。
此功能也可以在C / C ++中演示,但是比JavaScript更强类型的语言,不难想象这个赋值失败的实例。
但是,在JavaScript中,给定了两个变量x
和y
,我很难想到这会失败,或者程序条件代码块不会执行。
任何?
答案 0 :(得分:14)
如果y = 0,y = null,y = undefined或y = false,则it(x = y)将评估为false。
修改:如果y = NaN
编辑:如果y =“”
答案 1 :(得分:1)
条件块“x = y”将始终执行。但是在javascript“false”中,undefined,null和0计算为false。因此,只要y是其中一个值,就不会执行“// code”。
答案 2 :(得分:1)
js
js> if(x=y){
print('hello');
}
typein:1: ReferenceError: y is not defined
js>