Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2014, 20:11
Новичок на форуме
Отправить личное сообщение для nahkar Посмотреть профиль Найти все сообщения от nahkar
 
Регистрация: 01.02.2014
Сообщений: 1

Непонятен синтаксис
Читаю литература по JS и натыкаюсь на такой кусок кода:
var asd = asd || {};
Я понимаю что тут создают объект мне не понятно условие || (это на сколько я знаю оператор ИЛИ) к чему здесь этот оператор?
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2014, 20:16
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от nahkar
к чему здесь этот оператор?
А ты прочитай его описание...
Цитата:
Возвращает expr1, если оно может быть преобразовано к true; в ином случае возвращает expr2.
http://javascript.ru/boolean-operators

Т.о. такая конструкция используется для присвоения значений "по умолчанию"...

function (A,B) {
   A=A||0;
   B=B||1;
};
Ответить с цитированием
  #3 (permalink)  
Старый 02.02.2014, 12:54
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от nahkar
к чему здесь этот оператор?
Это называется shortcut.

var a = a || {}; // если а не определена, то присвоить а ссылку на новый пустой объект.

Канонично:

if(!a)
a = {};

Потому что в js нельзя задать умолчание в аргументах функции

function some(a = {}) {}

Поэтому срезают внутри функции как выше нарисовано.

Кстати, это от браузера зависит, FF такой синтаксис с дефолтами в аргументах хавает, а Хром плюется.

Последний раз редактировалось kostyanet, 02.02.2014 в 12:56.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Че за синтаксис непонятный??? SunYang Общие вопросы Javascript 6 13.03.2014 14:36
Что за синтаксис Arkasha69 Общие вопросы Javascript 4 26.05.2011 16:13
Зачем применяется такой синтаксис s"+"c"+"ript allforweb Общие вопросы Javascript 4 09.03.2011 18:20
записать переменную в ссылку (синтаксис) 2rION Общие вопросы Javascript 3 09.08.2009 21:46
Синтаксис языка javascript multimetr Я не знаю javascript 2 26.05.2009 23:34