Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Дэвид Флэнаган (https://javascript.ru/forum/offtopic/7281-dehvid-flehnagan.html)

PeaceCoder 31.01.2010 17:55

[] и {} - создание массива и обьекта и это создание должно кудато сохранится....

Niar 31.01.2010 17:57

Ты не понял {l:"l"} нету ошибки
Ошибка когда значение свойства-функция или когда имя свойства-строка
Цитата:

[] и {} - создание массива и обьекта
Да ты что

Kolyaj 31.01.2010 18:21

Цитата:

Сообщение от Niar
{"L":5}

Потому что это не expression, а block statement. Чтобы сделать expression, нужно взять в скобки
({"L": 5})

Niar 31.01.2010 18:23

А поподробней?=)

Kolyaj 31.01.2010 18:25

Поточнее я могу только послать в стандарт ECMAScript читать грамматику. Или обратиться, например, к Дмитрию Сошникову, которые лучше меня объясняет подобные вещи.

B@rmaley.e><e 31.01.2010 18:32

Цитата:

Сообщение от PeaceCoder
это создание должно кудато сохранится....

Кто сказал?

P.S. Вспоминаем анонимные function expression, которые никуда не сохраняются.

Niar 31.01.2010 18:42

Ну тогда просто запомню что нужно либо в скобки брать либо присваивать переменной
Потом почитаю его статьи. Я так мельком глянул очень интересные, хотя конечно не мой уровень

Gozar 31.01.2010 19:12

Цитата:

Сообщение от Niar (Сообщение 42978)
А поподробней?=)

Я так понимаю, что
{"x":5}
, это инструкция(наподобие if{}).

А инструкция выполняется в зависимости от условия, а условие в данном случае отсутствует, поэтому происходит нарушение синтаксиса и выводится ошибка. Если же взять в круглые скобки, то это уже выражение, а оно вычисляется сразу и условие ему не нужно.

B@rmaley.e><e 31.01.2010 19:21

Цитата:

Сообщение от Niar
либо в скобки брать либо присваивать переменной

Там, где явно подразумевается выражение, {} будет трактоваться как литеральное объявление объекта. В остальных случаях - как block statement. Аналогично function expression и function statement.
{
  alert('Я выполняюсь'); alert('И я');
  var i = 0;
  i++;
  alert('i=' + i)
}

Kolyaj 31.01.2010 19:22

Цитата:

Сообщение от Gozar
, это инструкция(наподобие if{}).

Ну почти. {} -- это block statement
{alert(1);}


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