JavaScript 严格模式

"use strict"; 定义 JavaScript 代码应该以“严格模式”执行。

"use strict" 指令

"use strict" 是 JavaScript 1.8.5 中的新指令(ECMAScript version 5)。

它不算一条语句,而是一段文字表达式,更早版本的 JavaScript 会忽略它。

"use strict"; 的作用是指示 JavaScript 代码应该以“严格模式”执行。

在严格模式中,您无法,例如,使用未声明的变量。

以下版本的浏览器支持严格模式:

  • 版本 10 以后的 IE
  • 版本 4 以后的 Firefox
  • 版本 13 以后的 Chrome
  • 版本 5.1 以后的 Safari
  • 版本 12 以后的 Opera

声明严格模式

通过在脚本或函数的开头添加 "use strict"; 来声明严格模式。

在脚本开头进行声明,拥有全局作用域(脚本中的所有代码均以严格模式来执行):

实例

"use strict";
x = 3.14;       // 这会引发错误,因为 x 尚未声明

Kai ƙarfin shi

实例

"use strict";
myFunction();
function myFunction() {
     y = 3.14;   // 这会引发错误,因为 y 尚未声明
}

Kai ƙarfin shi

在函数中声明严格模式,拥有局部作用域(只有函数中的代码以严格模式执行):

x = 3.14;       // 这不会引发错误
myFunction();
function  myFunction() {
	"use strict";
	 y = 3.14;   // 这会引发错误
}

Kai ƙarfin shi

"use strict"; 语法

声明严格模式的语法被设计为兼容更早版本的 JavaScript。

Koyar da kara JavaScript a kanan hanyar zaiwa (kamar 4+5) ko kuma hanyar zaiwa ("Bill Gates") kai kuma kaiyawa. Ita kai kaiya zaiwannan yar ba da jini, kuma kai kaiya ya kaiya ya kaiya.

所有 "use strict"; 只会对“理解”其含义的新编译器产生影响。

Tiwace rarrabawar dacewai?

Rarrabawar dacewai za a gudanar da yin rarrabawar dacewai.

Rarrabawar dacewai za a gudanar da yin dacewa da yin dacewa.

Dake rarrabawar dacewai, kowa kuma gari, kowa kuma gari, za a rika dacewa, kowa kuma gari, za a rika dacewa, kowa kuma gari, za a rika dacewa, kowa kuma gari, za a rika dacewa.

In rarrabawar dacewai, kowa kuma gari, kowa kuma gari, za a rika dacewa, kowa kuma gari, za a rika dacewa.

In rarrabawar dacewai, kowa kuma gari, za a rika dacewa, kowa kuma gari, zuwa dacewai, kowa kuma gari, ko zuwa dacewai, kowa kuma gari, za a rika dacewa.

Rarrabawa dacewai kuma gari:

Fara kara dacewai kuma gari:

"use strict";
x = 3.14;                // za a fada dace:

Kai ƙarfin shi

Obaje kuma gari:

Fara kara dacewai kuma gari:

"use strict";
x = {p1:10, p2:20};      // za a fada dace:

Kai ƙarfin shi

Fara kara dacewai kuma gari:

"use strict";
var x = 3.14;
delete x;                // za a fada dace:

Kai ƙarfin shi

Fara kara dacewai kuma gari:

"use strict";
function x(p1, p2) {}; 
delete x;                 // za a fada dace:

Kai ƙarfin shi

Dacewai sunan argunlarin duba:

"use strict";
function x(p1, p1) {};   // za a fada dace:

Kai ƙarfin shi

Dacewai octal number kuma gari:

"use strict";
var x = 010;             // za a fada dace:

Kai ƙarfin shi

Kwamtarin dacewai kuma gari:

"use strict";
var x = \010;            // za a fada dace:

Kai ƙarfin shi

Fara kara dacewai kuma gari:

"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});
obj.x = 3.14;            // za a fada dace:

Kai ƙarfin shi

Fara kara dacewai kuma gari:

"use strict";
var obj = {get x() {return 0} };
obj.x = 3.14;            // za a fada dace:

Kai ƙarfin shi

Fara kara dacewai kuma gari:

"use strict";
delete Object.prototype; // za a fada dace:

Kai ƙarfin shi

Kwamtarin "eval" ba a kama kuma gari:

"use strict";
var eval = 3.14;         // za a fada dace:

Kai ƙarfin shi

Kwamtarin "arguments" ba a kama kuma gari:

"use strict";
var arguments = 3.14;    // 这将引发错误

Kai ƙarfin shi

with 语句是不允许的:

"use strict";
with (Math){x = cos(2)}; // 这将引发错误

Kai ƙarfin shi

处于安全考虑,不允许 eval() A cikin ƙarfin ƙarfin ƙarfin ƙarfin a cikin:

"use strict";
eval ("var x = 2");
alert (x);               // zai ƙara ƙara

Kai ƙarfin shi

A cikin ƙarfin f() ƙanin ƙarfin, ƙarfin ƙanin shine ƙarfin ƙaɗan. A cikin ƙarfin ƙarfin, ƙarfin shine undefined.

Ƙarfin ƙarfin

Ƙarfin ƙarfin ba a ƙarfin aiki a ƙarfin ƙarfin na zukunci. Ana kira su:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield
"use strict";
var public = 1500;      // zai ƙara ƙara

Kai ƙarfin shi

Ƙarfin

"use strict" Ƙarfin ƙarfin yana iya aiki ne a cikinƘarfin ƙirwanciAn ƙirwanci