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。忘了!