var o = {p:1.2};
// много какого-то кода...
o.p.toFixed(); // например вызов метода toFixed(), а если свойства вдруг не будет (o.p вернёт undefined) то будет ошибка.
По-моему куча ненужных проверок усложняют чтение кода и заставляют продумывать кучу лишних комбинаций. А вы что думаете?
JavaScript
Вопрос по стилю кода. Следует ли проверять наличие свойства в объекте если я точно знаю что оно должно там быть?
Для уменьшения кол-ва ручных проверок придумали исключения:
https://learn.javascript.ru/exception
Но, к сожалению, JS разрешает самые бредовые комбинации - без каких либо предупреждений или ошибок. Так что без проверок не обойтись.
P.S. Сомневаешься - проверяй. Уверен - всё равно, проверяй. Потом проверку можешь убрать, но сначала - проверяй.
https://learn.javascript.ru/exception
Но, к сожалению, JS разрешает самые бредовые комбинации - без каких либо предупреждений или ошибок. Так что без проверок не обойтись.
P.S. Сомневаешься - проверяй. Уверен - всё равно, проверяй. Потом проверку можешь убрать, но сначала - проверяй.
Объекты >>> https://learn.javascript.ru/object
А какой ответ ожидали?) Нет общепринятого стандарта - всё зависит от кода.
Если пишу какую-нибудь универсальную функцию, которая в будущем много где пригодится - предпочитаю перестраховаться, чем позже вернуться и вникать в ошибку.
P.s. если написать просто o.p.toFixed(); — ничего не будет....
o.p = o.p.toFixed();
Можно без if, использовать логическое "ИЛИ"... вернется undefined - возьмется 0.
o.p = ( o.p || 0 ).toFixed();
Если пишу какую-нибудь универсальную функцию, которая в будущем много где пригодится - предпочитаю перестраховаться, чем позже вернуться и вникать в ошибку.
P.s. если написать просто o.p.toFixed(); — ничего не будет....
o.p = o.p.toFixed();
Можно без if, использовать логическое "ИЛИ"... вернется undefined - возьмется 0.
o.p = ( o.p || 0 ).toFixed();
Думаю, что такое следует писать, когда вспоминаешь об этом. Помогает искать ошибки, появляющиеся после неосторожного изменения внутренней логики.
В плюсах, например, уместно использовать макросы препроцессора, которые делают проверку только при отладочной сборке, а в релизной никаких проверок не делает, чтобы чуть-чуть увеличить производительность.
В плюсах, например, уместно использовать макросы препроцессора, которые делают проверку только при отладочной сборке, а в релизной никаких проверок не делает, чтобы чуть-чуть увеличить производительность.
С какой целью осуществляется проверка? В данном случае
o.p.toFixed()
если нет свойства "p", будет ошибка. А что должно быть? Я считаю, что и должна быть ошибка. Если ошибка будет заглушена проверкой, куда попадёт информация, что свойство не найдено? Если отсутствует свойство, которое обязательно должно быть по логике программы, значит программа уже работает неправильно. Заглушая ошибку ты не исправляешь её, а только изменяешь её проявления.
o.p.toFixed()
если нет свойства "p", будет ошибка. А что должно быть? Я считаю, что и должна быть ошибка. Если ошибка будет заглушена проверкой, куда попадёт информация, что свойство не найдено? Если отсутствует свойство, которое обязательно должно быть по логике программы, значит программа уже работает неправильно. Заглушая ошибку ты не исправляешь её, а только изменяешь её проявления.
если есть сомнения есть такая
простая проверка
if ( num.toFixed ){
что то делаем
}
в большинстве случаев проверка на стандартные функции объектов не требуется
простая проверка
if ( num.toFixed ){
что то делаем
}
в большинстве случаев проверка на стандартные функции объектов не требуется
можешь не проверять
Евгений Николаев
а если вдруг пропадёт? например электричество кончится и не запишется...
Похожие вопросы
- Вопрос только к тем, кто знает js: Кому не лень, объясните мне нубу значение каждого элемента небольшого кода (10 строк).
- Вопрос про объекты
- Какую структуру данных вы используете в разработке js приложений? Дерево? или Множество объектов? пояснение внутри
- Задача по JavaScript. Заполнение объектов через цикл в JavaScript
- Как сделать радномный выбор объекта? HTML, JS
- Получение массива из объектов, которые содержат имя cookie и ее значение
- Помогите разобраться в логике кода (замыкания)
- Гляньте код пожалуйста? Он работает, но мне кажется так не пишут. Да и по default что то не хочет работать код.
- Посмотрите пожалуйста задание. Всё работает. Тем не менее, интересно услышать замечания по коду.
- Как можно улучшить код?