я наткнулся на эту строку:JavaScript && оператора, если заявление
if((x = myFunction(y)) && x.length) {
//do something
}
x.length
выражение означает, что в этой ситуации? Означает ли это, что x.length! = 0?
я наткнулся на эту строку:JavaScript && оператора, если заявление
if((x = myFunction(y)) && x.length) {
//do something
}
x.length
выражение означает, что в этой ситуации? Означает ли это, что x.length! = 0?
Да. 0 является значением «ложного», поэтому if(x.length)
и if(x.length != 0)
будут делать то же самое
if (x.length) может означать одно из следующего для программиста.
if (x.length != 0)
if (x.length != null)
if (x.length != false)
Я хотел бы представить, для переводчика все это было бы
if (x.length != 0)
Пожалуйста, поправьте меня, если я ошибаюсь.
x.length также может быть неопределенным - и оценил бы как falsey – user2182349
«Пожалуйста, исправьте меня, если я ошибаюсь». --- стандарт объявляет, что 'ToBoolean' вызывается в результате выражения, который определяется как http://www.ecma-international.org/ecma-262/6.0/#sec-toboolean. Это немного отличается от того, ! = 0' – zerkms
Спасибо @ user2182349. Забыли это! –
yup 'x.length' имеет значение' x' не равно с '0' –
@FadhlyPermata спасибо –
Это зависит от того, что такое' x'. 'x.length' может быть чем угодно, но обычно это числовое свойство, заданное массивами и подобными массиву объектами, но' length' может быть как угодно. – adeneo