前端开发

【JS】JavaScript的严格模式('use strict'

2021-03-26  本文已影响0人  LouisDrink

什么是严格模式

"use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。
"use strict" 的目的是指定代码在严格条件下执行。
严格模式下你不能使用未声明的变量。

支持严格模式的浏览器:
Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。

如何使用严格模式

严格模式的使用,只需要在脚本或者函数的头部加入如下代码即可:
'use strict'

严格模式有什么优点与缺点

优点
缺点

严格模式的主要限制

"use strict";
x = 3.14;       // 报错 (x 未定义)
"use strict";
var x = 3.14;
delete x;                // 报错
"use strict";
function x(p1, p2) {};
delete x;                // 报错 
"use strict";
function x(p1, p1) {};   // 报错
"use strict";
var x = 010;             // 报错
"use strict";
var x = \010;            // 报错
"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});

obj.x = 3.14;            // 报错
"use strict";
var obj = {
  get x() { return 0 } 
};

obj.x = 3.14;            // 报错
"use strict";
delete Object.prototype; // 报错
"use strict";
var eval = 3.14;         // 报错
"use strict";
var arguments = 3.14;    // 报错
"use strict";
with (Math){x = cos(2)}; // 报错
"use strict";
eval ("var x = 2");
alert (x);               // 报错
function f(){
    return !this;
} 
// 返回false,因为"this"指向全局对象,"!this"就是false

function f(){ 
    "use strict";
    return !this;
} 
// 返回true,因为严格模式下,this的值为undefined,所以"!this"为true。

(以上信息多数参考于https://www.runoob.com/js/js-strict.html

上一篇下一篇

猜你喜欢

热点阅读