“use strict"是ECMAScript 5引入的一条指令。
指令不是语句(但很是接近于语句)。“usestrict"指令和普通的语句之间有两个重要的区别:前端
使用“use strict" 指令的目的是说明(脚本或函数中)后续的代码将会解析为严格代码(strict code)。若是顶层(不在任何函数内的)代码使用了“use strict" 指令,那么它们就是严格代码。若是函数体定义所处的代码是严格代码或者函数体使用了“use strict"指令,那么函数体的代码也是严格代码。若是eva1()调用时所处的代码是严格代码或者eval()要执行的字符串中使用了“scrict code”指令,则eval()内的代码是严格代码。数组
严格代码以严格模式执行。ECMAScript 5中的严格模式是该语言的一个受限制的子集,它修正了语言的重要缺陷,并提供健壮的查错功能和加强的安全机制。
严格模式和非严格模式之间的区别以下(前三条尤其重要) :安全
在严格模式中,调用的函数(不是方法)中的一个this值是undefined。(在非严格模式中,调用的函数中的this值老是全局对象)。能够利用这种特性来判断JavaScript实现是否支持严格模式:app
var hasstrictMode = (function() { "use strict"; return this==undefined}());
我是Cloudy,年轻的前端攻城狮一枚,爱专研,爱技术,爱分享。
我的笔记,整理不易,感谢阅读、点赞和收藏。
文章有任何问题欢迎你们指出,也欢迎你们一块儿交流前端各类问题!