Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Чем отличается undefined от null (https://javascript.ru/forum/misc/14132-chem-otlichaetsya-undefined-ot-null.html)

Sweet 01.01.2011 01:32

Цитата:

Сообщение от dmitriymar
известно имя известна длинна-и не существует?

Речь идет о элементе массива, а не о самом массиве.

dmitriymar 01.01.2011 09:44

элемент уже предопределён что он есть.поскольку длинна массива заданна чётко.поскольку массив это объект и элементы его разнотипные-из этого всё и выходит.обратись к элементы какой выходит за приделы заданного числа и он начнёт существовать, точно также как и переменная какая не существовала начинает существовать и становится при её упоминании ундефинит. (отличие объявления переменной с var и без него)
а вот с деревом дум так не пройдёт поскольку механизм добавления гораздо сложнее и элемент не начнёт существовать только от того что его упомянули

Kolyaj 01.01.2011 12:39

В JavaScript нет массивов в том понимании, в котором они существуют в других языках. Особенно а-ля С/С++. Ничто под возможные элементы не выделяется. Создание new Array(3) означает лишь создание массива без элементов, свойство length которого равно 3. А свойство length в общем случае вообще не отражает количество элементов в массиве.
http://alljs.ru/articles/array/whatis.html

Sweet 01.01.2011 13:23

dmitriymar,
рекомендую пересмотреть стандарт ECMA, потому что из последнего сообщения видно, что в основном твои "знания" строятся на фантазиях и собственных выводов. Например:
Цитата:

Сообщение от dmitriymar
отличие объявления переменной с var и без него

Без var - это уже не объявление переменной. Все ровно что сказать, что массив можно объявить при помощи new Object(), только у него не будет некоторых методов, зато toString - останется. Но работать он будет как-то по другому. Короче, бредить - легко! Гораздо легче, чем прочитать и осознать стандарты.

dmitriymar 01.01.2011 15:47

Цитата:

Сообщение от Sweet
dmitriymar,
рекомендую пересмотреть стандарт ECMA, потому что из последнего сообщения видно, что в основном твои "знания" строятся на фантазиях и собственных выводов. Например:
Сообщение от dmitriymar
отличие объявления переменной с var и без него

ну чтож если по поводу фантазий-в этом случае сам восползуйся своим советом и пересмотри документацию
кто говорит за выделение места в массиве? разговор идёт о том что массив после этого начинает существовать.что в нём не важно-важно что он есть-и это идёт в разрез с утвержением ундефинит это когда нет

dmitriymar 01.01.2011 15:48

Цитата:

Сообщение от Sweet
Без var - это уже не объявление переменной.

да нет, без вар это объявление переменной с глобальной видимостью в любом участке кода

monolithed 01.01.2011 16:42

Цитата:

Сообщение от dmitriymar
да нет, без вар это объявление глобальной переменной в любом участке кода

ключевое слово var позволяет объявить переменную в текущей области видимости, без него - свойство глобального объекта window

dmitriymar 01.01.2011 16:46

monolithed,
каж понял что ты говоришь.свойство в этом случае будет выступать как хранилище переменной глоб?(это если утрированно)
просто,везде где встречал,утверждалось что именно глоб переменная создаётся. а создаётся глоб переменная как свойство окна или глоб переменная не проверял-главное что действует как глоб переменная

monolithed 01.01.2011 17:28

что-то типа такого))

hrundel 01.01.2011 19:32

Я думаю, что здесь отталкиваться надо от того, что getElementById() это встроенная функция, а не переменная, поэтому она возвращает такие значения. Но когда мы имеем дело с переменными, то там надо ожидать undefined всегда, когда переменная не определена. Вроде так получается.

Вот ссылки про эту функцию:
http://www.w3.org/TR/DOM-Level-2-Cor...ml#ID-getElBId
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Есть ещё NaN, кстати.


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