在全局或者局部加上 ”use strict“
1,禁止意外创建全局变量
message=“hello world”
console.log(message) 直接报错
2,不允许函数有相同的参数名称
function foo(x,y,x)
{
console.log(x,y,x)
}
foo(1,2,3)
3,静默错误
true.name=“abc”
NaN=123
4,不允许使用原先的八进制格式
var num=-0123
console.log(num) 报错 不允许八进制
5,with语句不允许使用
6,eval函数不会向上引用变量了
var jsString=‘var message=‘a’; console.log(message)’
eval(jsString)
console.log(message) 会报错找不到message
7,自执行函数的this不再指向window而是undefined
8, 黑盒子 依然指向的是windows
setTimeout(function(){
console.log(this)
},1000)
[“abc”,“cba”]