Федеральная Служба Опасности


Previous Entry Share Next Entry
(no subject)
manandmoon
malaya_zemlya
Сегодня я узнал:
На джаваскрипте
if (something) {
label:
  x = 18; 
}

и
if (something)
{
label:
  x = 18; 
}

означают разные вещи.

Узнал я об этом из спора по поводу единственно верного способа расстаноки скобок. Интернет срач - удивительный источник знаний.

posted on dreamwidth [comment count unavailable comments]

  • 1
А рассказать, в чем же разница, для тех, кто знает джаваскрипт лишь шапочно?

Я подозревал, что одна или обе записи - object literal {x:10, y:20}. Но какая - не понимаю как определить, так labels - они только для циклов, а object literal тут ведёт себя натурально как блок кода, выполняя побочные эффекты.

Возможно это как-то связано - http://stackoverflow.com/questions/2775101/javascript-object-literal-notation-confusion

(Deleted comment)
так как правильно?

И так, и так, смотря что вы хотели получить ;)

А подробнее?

Хотя, пожалуй, в таком виде они действительно обозначают одно и то же.

так а в чём получается разница?

да вроде бы одно и то же это означает.

вы же для проверки пользуетесь нормальным stand-alone интерпретатором, а не chrome dev tools console или firebug console? там результаты могут отлиачаться.

Мне в firefox'е не удалось получить разные результаты. Может быть, я недостаточно версий проверил..

Проверил в хромовской консоли:

if (true) {
label:
x = 18;
}
18

if (true)
{
label:
x = 18;
}
18

Что я делаю не так?

  • 1
?

Log in