Изучаем JavaScript "use strict". Часть 1
В этой статье мы рассмотрим одну из важнейших функциональностей JavaScript, называемую "строгим режимом" (strict mode).
Обычно мы запускаем код Javascript в нормальном режиме, который позволяет много вещей, которые на самом деле являются неправильными и небезопасными. Но когда мы используем строгий режим, код Javascript выполняется без игнорирования неправильного синтаксиса, и поэтому делает код более безопасным.
Использование "strict mode"
Чтобы начать выполнять код в строгом режиме, нам нужно использовать директиву «use strict». Это просто выражение. Эта директива поддерживается в JavaScript 1.8.5 (ECMAScript 5) или выше.
Использование директивы «use strict»
Существует два способа использования директивы «use strict». Мы можем
использовать ее или внутри объявления функции в самом начале или в глобальном
объявлении – в начале файла.
Когда мы используем режим «strict mode» как глобальную директиву, весь код
javascript на странице выполняется в строгом режиме. Например:
"use strict"
function print(value) {
console.log (value);
}
Когда мы используем «use strict» внутри объявления функции, весь код внутри
функции выполняется в строгом режиме. Весь другой код вне функции выполняется в
обычном режиме.
Например:
function print(value) {
"use strict"
console.log (value);
}
function print_twice(value) {
console.log (value);
console.log (value);
}
Что мы не можем сделать в строгом режиме:
Использование необъявленной переменной
В строгом режиме мы не можем использовать необъявленную переменную.
"use string"
a = 12; // выбрасывается исключение в строгом режиме. В нестрогом режиме создается новое свойство для объекта window.
Оператор delete
Оператор delete используется для удаления пользовательских свойств у объекта и элементов массива. Если мы попытаемся удалить что-либо, кроме определенных пользователем свойств объекта или элементов массива, мы получим исключение.
"use strict"
var a = 78;
window.b = 34;
function print () {}
window.c = function () {}
delete a; // генерирует исключение в строгом режиме. В стандартном режиме он
возвращает false и программа продолжает работу
delete window.a; // генерирует исключение в строгом режиме. В нестандартном
режиме он возвращает false и программа продолжается.
delete window.b; // В обоих режимах свойство b удаляется
.
delete Math.PI; // В нестрогом режиме он возвращает false, поскольку PI
предварительно определен. В строгом режиме - исключение.
delete Object.prototype; // удаление встроенного свойства в нестрогом режиме возвращает false. Но в строгом режиме выбрасывается исключение.
Просто помните, что везде, где delete возвращает false в нестрогом режиме, он выдает исключение в строгом режиме.
Многократное объявление свойств
В строгом режиме вы не можете объявлять одни и те же свойства объекта более одного раза. В противном случае это вызовет исключение.
var myObject = {property1: 1, property2: 2, property1: 1}; // генерирует
исключение.
На этом все, а в следующей статье мы продолжим изучать директиву JavaScript "use strict".
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.