Объект и массив, цикл и тестирование
Что такое «использовать строго»;? каковы преимущества и недостатки его использования?
Директива "use strict" была новой в ECMAScript версии 5.
Это не утверждение, а буквальное выражение, игнорируемое более ранними версиями JavaScript.
Цель "use strict" — указать, что код должен выполняться в «строгом режиме».
В строгом режиме нельзя, например, использовать необъявленные переменные.
Объясните «подъем».
Объявления JavaScript поднимаются
В JavaScript переменная может быть объявлена после ее использования.
Другими словами; переменная может использоваться до того, как она была объявлена.
Пример 1 дает тот же результат, что и Пример 2:
Пример 1
х = 5; // Присвоить 5 х
elem = document.getElementById («демо»); // Находим элемент
elem.innerHTML = x; // Отображаем x в элементе
переменная х; // Объявить х
Объясните важность стандартов и органов по стандартизации.
Стандарты — это опубликованные документы, устанавливающие спецификации и процедуры, разработанные для обеспечения надежности материалов, продуктов, методов и/или услуг, которые люди используют каждый день.
В Интернете стандарты обсуждаются и принимаются группами заинтересованных лиц и организаций, называемых органами по стандартизации. Органы по стандартизации публикуют документы, описывающие различные стандарты для соответствующих технологий. Некоторые из этих документов включают…
Какие действия вы лично предприняли в последних проектах, чтобы повысить удобство сопровождения вашего кода?
Множественные обязанности (для любых устройств)
Не повторяйтесь
Этот пример также иллюстрирует другой принцип — повторяющийся код — это плохо. Часто цитируемый как «Не повторяйся» (DRY) или «Один и только один раз» (OAOO), идея здесь в том, что наличие одного и того же кода более чем в одном месте просто напрашивается на проблему — если вы сделаете ошибку. , а код нуждается в исправлении, то вы должны не забыть исправить его везде.
Роза под любым другим именем…
После того, как вы разбили свои классы и функции на множество небольших классов и функций, которые делают одну вещь хорошо, важно дать им хорошие имена.
Будьте настойчивы
Еще один очень полезный инструмент — использование утверждений. Заполнение вашего кода утверждениями выполняет двойную функцию.
- Если утверждение нарушено, вы только что нашли ошибку.
- Утверждение предоставляет сопровождающему дополнительную документацию. например
Улучшение существующего кода
- изменение кода таким образом, чтобы улучшить структуру и удобство сопровождения кода без изменения его поведения.
Почему расширение встроенных объектов JavaScript не является хорошей идеей?
Расширение встроенных объектов вызывает споры
Учитывая, как легко расширить функциональность встроенного объекта, объявив методы и свойства с помощью свойства прототипа, легко подумать, что всем нравится возможность делать все это. Как оказалось, расширение встроенных объектов немного спорно. Причины этого спора вращаются вокруг…
Вы не контролируете будущее встроенного объекта
Ничто не мешает будущим реализациям JavaScript включать собственную версию перемешивания, применимую к объектам Array. На этом этапе у вас есть коллизия, когда ваша версия shuffle и версия браузера shuffle конфликтуют друг с другом, особенно если их поведение или характеристики производительности сильно различаются.
Почему в целом рекомендуется оставлять глобальную область веб-сайта как есть и никогда ее не трогать?
В большинстве языков глобальные переменные считаются плохим делом. JS ничем не отличается, но он, вероятно, имеет более серьезные последствия, чем большинство языков.
Некоторые соображения о том, почему глобальные переменные вообще плохи (взято из Cunningham & Cunningham с изменениями для удобства чтения):
- Труднее читать код и рассуждать об этом, когда кажется, что переменные появляются из воздуха (но на самом деле из глобальной области видимости).
- Любой может обновить глобальную переменную из любой точки программы в любое время (и из любого потока, если их несколько).
- Общий запах кода — если вам лень ставить переменную только там, где она должна быть, то какие еще углы вы срезаете?
- Вероятно, вы столкнетесь с конфликтами имен глобальных переменных. Поскольку существует только одно пространство имен, вы, скорее всего, удвоите имя переменной.
Глобальные переменные особенно вредны для JS.
Мало того, что все вышеперечисленные пункты верны (и некоторые другие, которые я не включил), но и глобальные переменные в JS могут быть особенно проблематичными. Это связано с тем, что JS по умолчанию присваивает всем переменным глобальную область видимости, если только они не определены явно в другом месте. Вот пример:
1 2 3 4 5 6function badlyScoped() { globalVariable = "I'm a global variable"; }badlyScoped(); console.log(globalVariable); // logs "I'm a global variable"
Ну разве это не страшно! Мы думали, что создаем локальную переменную, поскольку она была определена внутри функции, но нет! Мы забыли ключевое слово var, которое делало бы переменную локальной. Вот исправленная версия:
1 2 3 4 5 6function wellScoped() { var localVariable = "I'm a local variable"; }wellScoped(); console.log(localVariable); // throws: "localVariable is not defined"
Это причуда (некоторые говорят ошибка) JS. Это делает глобальные переменные особенно опасными, поскольку вы можете даже не знать, что создаете их. Так что берегите себя и не забывайте использовать var!