В этом руководстве вы узнаете о синтаксисе «использовать строгий» JavaScript с помощью примеров.
'use strict';
заявляет, что код JavaScript должен выполняться в « строгом режиме ». Это упрощает написание хорошего и безопасного кода JavaScript. Например,
myVariable = 9;
Здесь myVariable создается без объявления. Это работает как глобальная переменная в JavaScript. Однако, если вы используете это в строгом режиме, программа выдаст ошибку. Например,
'use strict'; // Error myVariable = 9;
Приведенный выше код выдает ошибку, потому что myVariable не объявлен. В строгом режиме вы не можете использовать переменные без их объявления.
Чтобы указать, что эта программа находится в строгом режиме, мы использовали
'use strict';
вверху программы.
Вы можете объявить строгий режим, добавив 'use strict';
или "use strict";
в начале программы.
Когда вы объявляете строгий режим в начале программы, он будет иметь глобальную область видимости, и весь код в программе будет выполняться в строгом режиме.
Строгий режим в переменной
В строгом режиме использование переменной без ее объявления вызывает ошибку.
Примечание : вам нужно объявить строгий режим в начале программы. Если вы объявите строгий режим под некоторым кодом, это не сработает.
Например,
console.log("some code"); // 'use strict' is ignored // must be at the top "use strict"; x = 21; // does not throw an error
Строгий режим в функции
Вы также можете использовать строгий режим внутри функции. Например,
myVariable = 9; console.log(myVariable); // 9 function hello() ( // applicable only for this function 'use strict'; string = 'hello'; // throws an error ) hello();
Если вы используете 'use strict';
внутри функции, код внутри функции будет в строгом режиме.
В приведенной выше программе 'use strict';
используется внутри hello()
функции. Следовательно, строгий режим применим только внутри функции.
Как видите, в начале программы myVariable
используется без объявления.
Если вы объявляете 'use strict';
в верхней части программы, вы не можете использовать переменную, не объявив ее также внутри функции. Например,
// applicable to whole program 'use strict'; function hello() ( string = 'hello'; // throws an error ) hello();
Примечание . Строгий режим не применяется к операторам блока с ()
фигурными скобками.
Вещи, запрещенные в строгом режиме
1. Необъявленная переменная не допускается.
'use strict'; a = 'hello'; // throws an error
2. Необъявленные объекты не допускаются.
'use strict'; person = (name: 'Carla', age: 25); // throws an error
3. Удаление объекта запрещено.
'use strict'; let person = (name: 'Carla'); delete person; // throws an error
4. Дублирование имени параметра не допускается.
"use strict"; function hello(p1, p1) ( console.log('hello')); // throws an error hello();
5. Назначение собственности, не допускающей запись, не допускается.
'use strict'; let obj1 = (); Object.defineProperty(obj1, 'x', ( value: 42, writable: false )); // assignment to a non-writable property obj1.x = 9; // throws an error
6. Назначение свойства только для получения не разрешено.
'use strict'; let obj2 = ( get x() ( return 17; ) ); // assignment to a getter-only property obj2.x = 5; // throws an error
7. Назначение нового свойства для нерасширяемого объекта не допускается.
'use strict'; let obj = (); Object.preventExtensions(obj); // Assignment to a new property on a non-extensible object obj.newValue = 'new value'; // throws an error
8. Восьмеричный синтаксис не допускается.
'use strict'; let a = 010; // throws an error
9. Аргументы имени переменной и eval не допускаются.
'use strict'; let arguments = 'hello'; // throws an error let eval = 44;
10. Вы также не можете использовать эти зарезервированные ключевые слова в строгом режиме.
implements
interface
let
package
private
protected
public
static
yield
Преимущества строгого режима
Использование строгого режима:
- помогает писать более чистый код
- заменяет ранее принятые тихие ошибки (неправильный синтаксис) на реальные и выдает сообщение об ошибке
- упрощает написание «безопасного» JavaScript