Sweet,
Я думаю, не совсем так. foo="bar" // объявляем свойство глобального объекта var foo // объявляем переменную, в которую копируется значение свойства глобального объекта delete foo // пытаемся удалять переменную - false, и вместе с этим удаляется св-во в глобале console.log(global.foo)// это не имеет никакого отношения к переменной, и кроме того, мы это свойство удалили console.log(foo)// bar - ибо почему бы и нет = так оно и должно быть. |
Цитата:
А по вопросу: объявления var происходят в начале функции независимо от того где они указанны в коде. Т.е. alert(a); var a = 123;это на самом деле var a; alert(a); a = 123; Соответственно и в васшем примере: foo="bar" // foo уже локально ибо ниже объявлена через var var foo //объявляем переменную delete foo //удаление несуществующего console.log(global.foo) //undefined(было таким и до delete) console.log(foo) //bar |
Цитата:
global.foo = "value"; А затем в другом: console.log(foo); // undefined - это значение переменной foo="bar" // присваеваем переменной var foo // объявляем переменную delete foo // пытаемся удалять переменную - false console.log(global.foo)// value, потому что глобальное свойство мы не трогали console.log(foo)// bar |
Цитата:
|
*facepalm.jpg*
|
Цитата:
А что касаемо реально происходящего, см выше. |
Цитата:
global.a=eval("1") var a a//undefined |
Цитата:
console.log(arguments);И прозрей: в ноде весь код оборачивается в функцию! Там нет кода, исполняющего в глобальном окружении. Всё остальное - это просто бредни человека, который толком ничего не знает и не имеет опыта, но бредит какой-то хренотенью, типа "я самый умный, я понял, что var в глобале не нужен". Но Цитата:
|
Цитата:
var global = window; var program = 'global.a=eval("1");\ var a;\ alert(a); //undefined'; Function("exports, module, __filename, __dirname", program)(/*arguments*/); |
Цитата:
a=1 console.log(a) И что ты вообще называешь глобальным окружением? То глобальное (с var) что внутри модуля -- есть глобальное для этого модуля, как, впрочем и для функции. Ты не понимаешь, что такое глобальное окружение. Есть глобальный объект и есть глобальное окружение, в JS это не одно и тоже. |
Часовой пояс GMT +3, время: 04:08. |