首页 > 技术文章 > 严格模式

2han 2017-02-03 14:17 原文

参考http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

 

严格模式的目的:更严谨,更安全,更合理

1.两种调用方式

a.在脚本的第一行 "use strict",表明整个脚本都将以"严格模式"运行

b.在函数内部的第一行,表明整个函数都将以"严格模式"运行

因为有脚本文件合并的顾虑,一般两种方法并用

 (function (){

    "use strict";
    // some code here

   })();

 

2.严格模式对于语法和行为改变

a.全局变量必须声明,不然报错

b.eval里面是单独的作用域

c.对象的属性不得重名,函数参数名不得重名

d.函数内部的this,不指向全局作用域(window),默认是undefined

e.函数内部禁止使用 fn.arguements,而是直接用arguments

f.arguments不得赋值,arguments也不再追踪参数的变化,算是只读

g.严格模式只允许在全局作用域或函数作用域的顶层声明函数。也就是说,不允许在非函数的代码块内声明函数(if,或者for)

h.保留字变多

推荐阅读