?

Log in

Хойстинг - Скрыпт [entries|archive|friends|userinfo]
Скрыпт

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Хойстинг [Jul. 4th, 2007|07:24 pm]
Скрыпт

script_magazine

[shabunc]
Всё таки век живи, век учись, ей богу. Я на яваскрипте пишу буквально с первых его реализаций, помню войнушки ещё 4-го поколения браузеров, некоторые фрагметы ECMA спецификации могу воспроизвести едва ли не буквально, а тут на тебе - такое открытие. Даже стыдно немного.

Вот как вы думаете - такой код - он что будет выдавать?

function test(){
a=3;
alert(a);
alert(window.a);
var a;
}
А вот что.
linkReply

Comments:
From: insolite
2007-07-04 06:12 pm (UTC)
Нифига себе. Даже в несчастном скриптовом языке есть out-of-order операции :)
Только я не понял: это только компилятор ActionScript так себя ведет, или спекой ECMAScipt установлено?
(Reply) (Thread)
[User Picture]From: shabunc
2007-07-05 06:42 am (UTC)
насколько я понимаю, такое поведение интерпретатора/компилятора - это собственно в адобовском документе артикуировано - есть прямое следствие scope-модели в js - а модель это, да, ECMA-стандарт.

и не такой уж кстати js и несчастный язык, смею вас заверить.
(Reply) (Parent) (Thread)
[User Picture]From: sb16
2007-07-05 06:49 am (UTC)
undefined. Потому как a=3 это private переменная функции test, то есть test.a. Думаю понятно, что window.a != test.a.
(Reply) (Thread)
[User Picture]From: shabunc
2007-07-05 07:10 am (UTC)
если б я её не объявил ниже, не была бы это private переменная. в том-то и соль.

function test(){
a=3;
alert(a);
alert(window.a);
}
(Reply) (Parent) (Thread)