Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   wtf javascript (https://javascript.ru/forum/offtopic/22405-wtf-javascript.html)

vflash 18.10.2011 13:33

wtf javascript
 
просто нет слов. мож кто объяснить зачем они так сделали ?

var m = [23,,,,45];
alert(m.indexOf(m[1]));

Kolyaj 18.10.2011 13:36

Как так?

По примеру: первого элемента в массиве не существует, поэтому m[1] == undefined. Но ни одно undefined в массиве нет.

var m = [23,,,undefined,45];
alert(m.indexOf(m[1]));

vflash 18.10.2011 13:50

Kolyaj,
ну и что, что нет. это же массив.
где тут здравый смысл бегать по массиву как по хешу.

Kolyaj 18.10.2011 14:16

Потому что массив в JavaScript-е не то же самое, что массив в PHP, и уж тем более не то же самое, что массив в Си.

http://alljs.ru/articles/array/whatis

Riim 18.10.2011 15:40

Цитата:

Сообщение от Kolyaj
Потому что массив в JavaScript-е не то же самое, что массив в PHP, и уж тем более не то же самое, что массив в Си.

тогда length неверно работает (по нему второй элемент все же есть). По моему, они там сами не разобрались еще как правильно.

Kolyaj 18.10.2011 15:42

Цитата:

Сообщение от Riim
тогда length неверно работает

Что значит неверно? Он работает по спецификации. Нигде не сказано, что он равен количеству элементов в массиве.

Riim 18.10.2011 15:50

Цитата:

Сообщение от Kolyaj
Он работает по спецификации.

я понимаю, спецификация и все такое, но просто с точки зрения обычного человеческого восприятия, ни фига ненормально, когда forEach срабатывает меньше раз, чем написано в length. Называлось бы это свойство maxIndex, никаких вопросов бы не было.

Kolyaj 18.10.2011 15:52

Я не любитель обсуждать вещи, которые невозможно изменить. Это как о политике на кухне разговаривать. Есть свойство, у него есть название, у него есть предопределённое поведение. Зачем рассуждать, что по чьему-то мнению оно работает не правильно?

float 18.10.2011 16:32

Цитата:

Зачем рассуждать, что по чьему-то мнению оно работает не правильно?
Ну может лет эдак через 15 мы будем пользоваться riimscript-ом где будет всё проще и понятнее?;)

Kolyaj 18.10.2011 16:39

Если на кухне порассуждать о "довели страну", жизнь в стране лучше не станет.


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