2015-09-11 2 views
1

В следующем фрагменте кода JavaScript я ожидаю, что вывод console будет 3, но как в Chrome, так и в Mozilla, это 23. Почему?Длина массива строки в JavaScript

var status = ["Busy", "Preferred", "Available"];   
console.log(status.length); 
+2

Возможно, это ошибка, связанная с 'window.status'? – PHPglue

+1

Да, все, что вы назначаете 'window.status', преобразуется в строку. – techfoobar

+0

Да, 'окно' подразумевается без использования. – PHPglue

ответ

5

Существует уже window.status (глобальная переменная с именем status). Подробнее here.

Когда вы пытаетесь установить массив ["Busy", "Preferred", "Available"] в свою глобальную переменную, будет вызываться setter window.status. Таким образом, свойство window.status будет содержать строку "Busy,Preferred,Available".

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

2

Похоже, что статус - это зарезервированная переменная из Chrome и Firefox, попробуйте использовать другое имя переменной.

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