Articles

JavaScript “use strict”

'use strict'; declara que o código JavaScript deve ser executado em ‘modo strict’. Isto facilita a escrita de um bom e seguro código JavaScript. Por exemplo,

myVariable = 9;

Aqui, a myVariable é criada sem declarar. Isto funciona como uma variável global em JavaScript. No entanto, se a utilizar em modo estrito, o programa irá lançar um erro. Por exemplo,

'use strict';// ErrormyVariable = 9;

O código acima atira um erro porque a myVariable não é declarada. No modo estrito, não se pode utilizar a variável sem a declarar.

br> Para indicar que este programa está no modo estrito, utilizámos

'use strict';

no topo do programa.

Pode declarar o modo estrito adicionando 'use strict'; ou "use strict"; no início de um programa.

Quando declara modo estrito no início de um programa, este terá alcance global e todo o código no programa será executado em modo estrito.

Modo estrito em variável

Em modo estrito, utilizando uma variável sem declarar um erro.

Nota: É necessário declarar modo estrito no início do programa. Se declarar modo estrito abaixo de algum código, não funcionará.

Por exemplo,

console.log("some code");// 'use strict' is ignored// must be at the top"use strict";x = 21; // does not throw an error

Modo estrito em função

P>Tambem se pode usar o modo estrito dentro de uma função. Por exemplo,

myVariable = 9;console.log(myVariable); // 9function hello() { // applicable only for this function 'use strict'; string = 'hello'; // throws an error}hello();

Se usar 'use strict'; dentro de uma função, o código dentro da função estará em modo estrito.

No programa acima, 'use strict'; é usado dentro da função hello(). Assim, o modo estrito só é aplicável dentro da função.

Como pode ver, no início do programa, myVariable é utilizado sem declarar.

Se declarar 'use strict'; no topo do programa, não pode utilizar uma variável sem a declarar também dentro da função. Por exemplo,

// applicable to whole program'use strict';function hello() { string = 'hello'; // throws an error}hello();

Nota : O modo estrito não se aplica a declarações de bloqueio com chaves.

O que não é permitido no modo estrito

1. Variável não declarada não é permitida.

'use strict';a = 'hello'; // throws an error

2. Objectos não declarados não são permitidos.

'use strict';person = {name: 'Carla', age: 25}; // throws an error

3. A eliminação de um objecto não é permitida.

'use strict';let person = {name: 'Carla'};delete person; // throws an error

4. A duplicação de um nome de parâmetro não é permitida.

"use strict";function hello(p1, p1) { console.log('hello')}; // throws an errorhello();

5. Não é permitida a atribuição a uma propriedade nãocritível.

'use strict';let obj1 = {};Object.defineProperty(obj1, 'x', { value: 42, writable: false });// assignment to a non-writable propertyobj1.x = 9; // throws an error

6. Não é permitida a atribuição a uma propriedade apenas de getter.

'use strict';let obj2 = { get x() { return 17; } };// assignment to a getter-only propertyobj2.x = 5; // throws an error

7. A atribuição a uma nova propriedade sobre um objecto não extensível não é permitida.

'use strict';let obj = {};Object.preventExtensions(obj);// Assignment to a new property on a non-extensible objectobj.newValue = 'new value'; // throws an error

8. A sintaxe octal não é permitida.

'use strict';let a = 010; // throws an error

9. Os argumentos do nome da variável e avaliação não são permitidos.

'use strict';let arguments = 'hello'; // throws an errorlet eval = 44;

10. Também não é possível utilizar estas palavras-chave reservadas em modo estrito.

implementsinterfaceletpackageprivateprotectedpublicstaticyield

Benefícios do modo estrito

O uso do modo estrito:

  • ajuda a escrever um código mais limpo
  • altera erros silenciosos anteriormente aceites (sintaxe má) em erros reais e lança uma mensagem de erro
  • torna mais fácil escrever JavaScript “seguro”

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *