严格模式
- 必须用var声明变量
- 禁止自定义的函数中this指向window
function Person(name,age) {
this.name = name
this.age = age
}
//自调用,严格模式下禁止
Person()//报错
- 创建eval作用域
"use strict" //如果不加
function Person(name,age) {
this.name = name
this.age = age
}
new Person('kobe',39)
var str = 'NBA'
eval('var str = "CBA"; alert(str)')
alert(str) //非严格模式下,str = ‘CBA', 严格模式下 str = 'NBA'
- 对象不能有同名属性
- 参数属性名唯一
- 禁止八进制语法
- 禁止使用with
- 禁止删除声明变量
10.给只读属性,不可写属性,不可扩展对象复制会报错