1.块级函数
"use strict"; if (true) { function f() { } // 语法错误 }
es5中严格模式下禁止声明块级函数,而在es6的严格模式中可以声明块级函数,并可以在块级作用
'use strict' var b= true; if(b){ function test(){ console.log('我是块级函数') } test(); //可以正常运行 } console.log(typeof test) //块级作用域外无法访问
2. 箭头函数
箭头函数是es6中新增的一种特殊函数,不管是否处于严格模式下,一个箭头函数中的参数不能有同名的。而ES5中,只有在严格模式下函数的参数才不能有同名
3.字面量对象重复属性问题
es5的严格模式中,如果对象属性重名则会报错,es6则不管是不是严格模式,如果有同名属性,则后面的属性覆盖前面的
4.模块模式
采用es6的模块化开发时,代码自动运行在严格模式下且没有任何办法跳出严格模式
5.类模式
在es6中不管是类声明还是类表达式,其内部使用的都是严格模式。