0
Я знаю, что ||
означает OR
это легко. Но недавно я увидел этот фрагмент кода:Что означает "||" означает в javascript (кроме OR)?
var myArray = [['activity', 'none'] ,
['movies', 'activity'],
['theater','activity'],
['drama', 'movies'],
['comedy', 'movies'],
['puppet', 'theater'],
];
var nodes = {};
for (var i in myArray) {
var child = myArray[i][0];
var parent = myArray[i][1];
var children = nodes[parent] || []; // what is this ?
children.push(child);
nodes[parent] = children;
}
alert(nodes);
Я смущен. children
выглядит как массив, потому что он имеет метод .push
. Но var children = nodes[parent] || [];
указывает на: children
является булевым. ,
Также, как можно сравнить объект и пустой массив? var children = nodes[parent] || [];
Благодаря
Это [логический 'ИЛИ'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Logical_OR_%28.7C.7C%29) там;). – Teemu
вы можете использовать '||' для установки значения по умолчанию; в этом случае пустой массив ('[]') является значением по умолчанию для 'children', если' nodes [parent] 'является ложным. – Don
См. Http://stackoverflow.com/questions/1011317/replace-a-value-if-null-or-undefined-in-javascript – Pete