Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   var x = x || {} (https://javascript.ru/forum/misc/17523-var-x-%3D-x-%7C%7C-%7B%7D.html)

Redjik 23.05.2011 01:08

var x = x || {}
 
Понимаю, что придам себя анафеме этим вопросом, но уже замучался доку ковырять ...

что значит || (при чем тут ИЛИ)

config.name = config.name || "bob"

еще один пример ... взято с англ книжки по ExtJS

Первый пример по namespace, которые я всегда делал совсем по-другому,
второй определяет внутри класса... я конечно догадываюсь о знаении ||, но что точно означает не пойму...

Aetae 23.05.2011 01:10

http://javascript.ru/boolean-operators

kobezzza 23.05.2011 01:41

Если переменная или свойство объекта равны empty string, null, undefined, 0, то они могут трактоваться как false, а в данном контексте это выражение означает, если config.name определён (не false), то он остаётся без изменений, а если нет, то берётся дефолтное значение "bob".
Кстати, если boolean(false) - это всё равно true, т.к. переменная определена, поэтому лучше использовать строгое сравнение (=== и !==).

Redjik 23.05.2011 01:51

спасибо - догадка оправдалась =) на тернарных мозг зациклился... поэтому искал изначально неправильно

Riim 23.05.2011 03:47

Лучше так:

config.name || (config.name = "bob");


Часовой пояс GMT +3, время: 09:30.