Почему var i = 15,4;
генерирует ошибку? Ведь сначала должно присваивание выполнится, а затем оператор ,
вернет 4. Или как это работает? Может ,
не является оператором в данном контексте? Объясните пожалуйста.
Обратимся к спецификации. Синтаксис использования var
, следующий:
VariableStatement[Yield, Await]: var VariableDeclarationList[+In, ?Yield, ?Await]; VariableDeclarationList[In, Yield, Await]: VariableDeclaration[?In, ?Yield, ?Await] VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await] VariableDeclaration[In, Yield, Await]: BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await] opt BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
Отсюда видно, что в данном случае запятой разделяются именно BindingIdentifier
.
Число 4
не является идентификатором, поэтому и показывается синтаксическая ошибка.
var
объявляет переменную и факультативно присваивает ей значение. Декларация это инструкция (statement), а не выражение (expression), и по синтаксису после запятой в объявлении возможны только другие объявления переменных (факультативно с присваиванием). Вот так работает:
var i;
i = 15,4; // Присваивает 15, возвращает 4.
console.log(i);
Теперь сначала происходит присваивание, потом возврат второго операнда.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне необходимо создать список в виде древовидной структурыЧто-то вроде:
подскажите, есть строка, хочу вывести ее в хтмл по буквенно, одна за одной с каким-то интервалом, разбиваю строку с помощью split(), и как теперь...