Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   document.getElementById return undefined (https://javascript.ru/forum/events/48327-document-getelementbyid-return-undefined.html)

foo 29.06.2014 22:19

Цитата:

Сообщение от bes
alert(left);//undefined

Это выражение не возвратит undefined. Это ошибка. можно window.left уж тогда.
Цитата:

Сообщение от bes
var left = document.getElementById('sq').style.left;

Это выражение никакого отношения к первому не имеет. Я Вашей шутки не понял.

foo 29.06.2014 22:21

Цитата:

Сообщение от bes
есть - комментарии не обрабатываются интерпретатором, что хочу, то и пишу

Не, я подумал, что он туда скопировал, возможно, с аутпута, JS ведь регистр различает. Может в эту сторону стоило бы капнуть.

Sweet 29.06.2014 22:33

Цитата:

Сообщение от foo
Это ошибка.

Нет никакой ошибки. Вполне допустимо писать так:
foo = "bar";
var foo;
alert(foo);

, чтобы подчеркнуть свой богатый внутренний мир. Ну а чё! Я вот не понимаю людей, которые объявляют переменные в начале функции. И в знак протеста, я буду объявлять переменные внизу функций!!!

foo 29.06.2014 22:40

Sweet,
Вы там написали совершенно другое. Вы аллертите необявленное и неприсвоенное. Это ошибка.

Aetae 29.06.2014 22:43

Цитата:

Сообщение от foo (Сообщение 318697)
Это выражение не возвратит undefined. Это ошибка.

Оба этих утверждения ложны. Вы вообще не знаете тонкостей javascript.
value = alert(left);
var left;

alert( 'Небыло никакой ошибки, alert(left) в свою очередь вернула: ' + value );

Хотя бы проверяйте свои домыслы прежде чем утверждать.

foo 29.06.2014 22:46

Цитата:

Сообщение от Sweet
чтобы подчеркнуть свой богатый внутренний мир

BTW, выражение вашего внутреннего мира сильно зависит от реализации. Например в ноде:
foo="bar"
var foo
delete foo
console.log(global.foo)// undefined
console.log(foo)// bar

foo 29.06.2014 22:52

Цитата:

Сообщение от Aetae
Хотя бы проверяйте свои домыслы прежде чем утверждать.

Да, ошибся. Я просто не глянул внимательно на его код. Ладно проехали, признаю, что ошибся. А Вы значит знаете тонкости? Почему же так происходит?

Aetae 29.06.2014 22:57

foo, еслиб вы почитали учебник на этом сайте и вы бы знали почему.

foo 29.06.2014 23:01

Цитата:

Сообщение от Aetae
еслиб вы почитали учебник на этом сайте и вы бы знали почему.

Дайте линк

Sweet 29.06.2014 23:07

Цитата:

Сообщение от foo
выражение вашего внутреннего мира сильно зависит от реализации.

Нет, если реализация - по стандартам. Как, например, в ноде. Просто в ноде есть тонкость: там модули при require оборачиваются в функцию:
Function(/*arguments*/, moduleText)(/*arguments*/);

, где /*arguments*/ - не помню точно какие аргументы (помню module, __dirname и ещё какие-то).
Т.е.
foo="bar" // присваиваем значение переменной
var foo // объявляем переменную
delete foo // пытаемся удалять переменную - false
console.log(global.foo)// это не имеет никакого отношения к переменной
console.log(foo)// bar - ибо почему бы и нет =)


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