1.概念:运行模式中,除了正常模式,ECMAscript 5提出了第二种运行模式:”严格模式”(strict mode)。这种模式使得Javascript在更严格的条件下运行。目的是帮助消除那些容易出错的语法和限制使用容易导致问题的编程方式。所以相当于一个Javascript的子集,因此用严格模式编写的javascript代码是可以在所有javascript的解释器中正常运行的。
2.特点:“严格模式”体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它(有人测试IE6,7,8,9均不支持严格模式,会将其当成普通字符串加以忽略)。另一方面,同样的代码,在”严格模式”中,可能会有不一样的运行结果;一些在”正常模式”下可以运行的语句,在”严格模式”下将不能运行。
3.使用:使用方式很简单,只需要在代码的开始位置写上"use strict"即可
4.注意:(1)使用时一定要加上引号(低版本的解释器会执行字符串,并不做任何处理,高版本(ES5)则进行严格检查后面的 代码)
(2) 这一行代码必须放置于函数首行或者文件首行(分别代表该函数体或者文件处于严格模式下编写,解释器会进行相 应的代码检查,位置如果不对的话不会进行任何操作)
5.使用后:(1)如果在语法检测时发现语法问题,则整个代码块失效,并导致一个语法异常。
(2)如果在运行期出现了违反严格模式的代码,则抛出执行异常。
6.优点:(1) 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
(2) 消除代码运行的一些不安全之处,保证代码运行的安全
(3)提高编译器效率,增加运行速度
(4) 为未来新版本的Javascript做好铺垫
7.缺点:大多数JS 文件会进行压缩,一些文件用了严格模式,而另一些没有。这时这些本来是严格模式的文件,被合并后,这个串就到了文件的中间,不仅没有指示严格模式,反而在压缩后浪费了字节。