EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

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


Author Message
Written on: 14. 10. 2013 [08:23]
dell
Путин Краб
Topic creator
registered since: 09.04.2013
Posts: 28
Например имеем массив:
JAVASCRIPT
k = new Array();

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

то получаем 0. (Происходит ли в данном случае преобразование типов?)
Почему? Где об этом можно почитать? В документации на модуль "<JavaLikeCalc>" этого не нашел.
Written on: 14. 10. 2013 [13:11]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 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.



23200