JavaScript&&;If语句中的运算符
我遇到了这样一条线:JavaScript&&;If语句中的运算符,javascript,operators,Javascript,Operators,我遇到了这样一条线: if((x = myFunction(y)) && x.length) { //do something } x.length表达式在这种情况下意味着什么?这是否意味着与x.length一样长!=0?是。0是一个“假”值,因此if(x.length)和if(x.length!=0)将执行相同的操作如果(x.length)对程序员来说可能意味着以下任何一项 if (x.length != 0) if (x.length != null) if (x.
if((x = myFunction(y)) && x.length) {
//do something
}
x.length
表达式在这种情况下意味着什么?这是否意味着与x.length一样长!=0?是。0是一个“假”值,因此if(x.length)
和if(x.length!=0)
将执行相同的操作如果(x.length)对程序员来说可能意味着以下任何一项
if (x.length != 0)
if (x.length != null)
if (x.length != false)
我想,对于口译员来说,这一切都是
if (x.length != 0)
如果我错了,请纠正我。是的
x.length
的意思是x
不等于0
@FadhlyPermata谢谢,这取决于x
是什么x.length
可以是任何东西,但通常它是数组和类似数组的对象的数字属性,但是length
也可以是任何东西。它正在测试x.length
是否为“真实”。如果您可以假设myFunction()
返回具有数值.length
属性的内容,那么是的,它正在测试该属性是否为0
。(如果myFunction()
返回的未定义的或null
,则会出现错误)@nnnnnn-如果myFunction
返回错误值,则不会检查和&
的右侧,并且不会出错。x.长度也可能未定义-并将计算为false“如果我错了,请纠正我。”---该标准声明对定义为的表达式结果调用ToBoolean
,因此它与仅!=0
谢谢@user2182349。忘了!