очевиден, а для многих людей в чатах нет. Может быть было бы лучше если бы индекс не был бы строкой?
для чего лучше? я приведу другой пример - прототипное наследование в js и отсутствие "настоящих" классов.....знаешь, почему так это устроено в js? кто то скажет, что это хуже....потому что условные джависты к этому не привыкли?
А может лучше писать так, что бы это мог прочитать даже человек который из языков знает только паскаль?)
«знаешь, почему так это устроено в js?» Я знаю что таково свойство языка. Почему так было сделано - не знаю
Да, лучше так конечно. Просто факт в том что многие js-программисты которые сидят в чатах по жс и видимо пишут программы на жс и возможно даже зарабатывают на этом деньги не знают о этом свойстве языке и не видят в этом коде подвоха, значит теоретически тоже могут столкнуться с этой проблемой
а зачем условному джаваскриптизеру заботиться об этом? что вообще будет делать на проекте человек, который знает только паскаль?) как он туда попал?))
Да не, тут он прав. Чем код понятнее тем лучше. Может быть менеджер знает паскаль и решил пробежаться глазами по коду
чем понятнее, тем лучше это да.....человекочитабельный, самодокументируемый.....простое лучше сложного.... просто иногда люди ругают чужой инструмент только потому, что он отличается от привычного им и пытаются притянуть все к себе..... как на ютубах один известный джавист гонит на пайтон за отсутствие скобочек, например)
Вопрос. Представьте себе альтернативный мир, где в js ключом в объекте может быть число. В этом идеальном мире индексы массивов в жс изначально имеют целочисленный тип и такой проблемы нет. Как вам? Это лучше или хуже? Вопрос 2. Какие преимущества даёт хранение индексов массивов в строковом типе?
Вам уже 5 человек объяснили, вы не хотите слышать (((
Позволяет наследовать массив от объекта
Вопрос 3. Что ты знаешь о Symbol?
Вобщем моя логика такая. Массив это последовательность значений. Индекс это порядковый номер значения. Номер это число. Таков универсальный смысл понятия массива вообще. Например, зная индекс некоего значения можно используя суммирование получить предыдущее значение, следующее или идущее через пять позиций. Нет никакой логики в том что число хранится в строке
так исторически сложилось)
Да, но это плохо
Не ты ли поднимал подобный (или даже аналогичный) вопрос где-то так с полгода назад? 🤔
Почему от таких сообщений становится душно? Ты еще объясни почему typeof null === object. Это просто исторически сложившаяся практика. Для обратной совместимости. P.S. Уже чешутся руки про use strict написать?
Была история когда гугл пытался поменять это поведение, но сломалось оч много сайтов
Вот в том то и проблема. Почему у вас дверь в оконном проёме и в метре над полом? Ну так исторически сложилось. Да, можно приспособиться, привыкнуть, но это нелогично, неудобно, существует только из-за обратной совместимости и в идеале этого быть не должно
Можно использовать use strict и избавиться от некоторых болячек js. Но в конечном итоге: js интерпретируемый язык, интерпритаторов (движков) очень много и всем не угодишь. Весь упор в максимальную обратную совместимость
Первый вопрос странный, а по поводу второго - индексы в строковом виде работают быстрее
Обсуждают сегодня