УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

Вопросы по массиву.


Автор Сообщение
Сообщение создано: 14. 10. 2013 [08:23]
dell
Путин Краб
Создатель темы
Зарегистрирован(а) с: 09.04.2013
Сообщения: 28
Например имеем массив:
JAVASCRIPT
k = new Array();

Если возьмем несуществующий элемент массива, например k[1], то значение его "<EVAL>". Если же обратимся к несуществующему элементу массива вот так k[1][1], то получаем некоторое значение, которое не "<EVAL>", при сравнении с любой строкой дает 1. Если же просто вывести
JAVASCRIPT
Text1_text = k[1][1];

то получаем 0. (Происходит ли в данном случае преобразование типов?)
Почему? Где об этом можно почитать? В документации на модуль "<JavaLikeCalc>" этого не нашел.
Сообщение создано: 14. 10. 2013 [13:11]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3747
"dell" wrote:

Например имеем массив:
JAVASCRIPT
k = new Array();

Если возьмем несуществующий элемент массива, например k[1], то значение его "<EVAL>".

Не совсем EVAL, а NULL, который при переводе в строку стаёт EVAL.

"dell" wrote:

Если же обратимся к несуществующему элементу массива вот так k[1][1], то получаем некоторое значение, которое не "<EVAL>", при сравнении с любой строкой дает 1.

"false" он так возвращает.
А результат сравнения зависит, кто первый. если элемент массива, которого нет то строка приведётся в целое и если там не первая и не нулевая цифра то будет true(1). А если записать наоборот, то false приведётся в строку.

"dell" wrote:

Где об этом можно почитать? В документации на модуль "<JavaLikeCalc>" этого не нашел.

Про преобразования там и написано, а про результаты в случае некорректном доступе к элементам объекта не написано ибо специфично и в целом такая запись это ошибка.

Learn, learn and learn better than work, work and work.



20952