2013-09-25 3 views
10

В окне Инструменты разработчика Chrome, я напечатал:Что особенного в переменной «name» в JavaScript?

> name = ["a", "b", "c"] 
["a", "b", "c"] 

Однако name стала строка:

> typeof name 
"string" 
> name 
"a,b,c" 
> name[1] 
"," 

Это, очевидно, не верно и для других имен переменных!

> foo = ["a", "b", "c"] 
["a", "b", "c"] 
> typeof foo 
"object" 
> foo[1] 
"b" 

И name определяется как пустая строка на странице загрузки (и, насколько я могу судить, не может стать ничем иным, чем строка).

Итак, что случилось с name?

+0

Firebug имеет тоже. –

+0

похоже, что имя уже существует до назначения его в массив. Значение по умолчанию - '' ''. Я подозреваю, что это встроенный/прототип, который является частью собственно языка. Несмотря на особенности. –

+0

Еще одна вещь, которую я заметил, переменная остается установленной, даже если вы перезагрузите страницу, что не является нормальным поведением. – dajavax

ответ

Смежные вопросы