将`if(x = y)`永远返回false或者在JavaScript中失败?

Jam*_*man 2 javascript conditional-operator

这是一个理论问题,因为我无法想象任何实际用途.

我今天发表了一个大胆的声明,在JavaScript中,以下内容将始终返回true:

if (x=y){
    //code
}
Run Code Online (Sandbox Code Playgroud)

而且//code,不管它是什么,就一定会执行.

这是不进入==甚至不进入的经典错字===.

此功能也可以在C/C++中演示,但是比JavaScript更强类型的语言,不难想象这个赋值失败的实例.

但是,在JavaScript中,给定了两个变量,x并且y我很难想到这会失败的情况,或者程序条件代码块不会执行.

任何人?

par*_*toa 14

如果y = 0,y = null,y = undefined或y = false,则it(x = y)将评估为false.

编辑:如果y = NaN

编辑:如果y =""