JS严格模式
1.消除了语法的一些不合理的地方
2.提高了编译效率s
3.禁用了一些关键词,为以后做铺垫。
在script里面的第一句加上
‘user strict’
IE10以下的会自动略掉这句话。不会有什么影响
严格模式对变量的影响
1.严格模式下,变量必须先声明,再使用。
2.不能使用delete来删除定义好的变量。
严格模式对this的影响
1.以前的全局作用于函数下,this指向的是window
,在严格模式下,指向的是undefined
2.同理以前的构造函数,直接调用时,,当普通函数调用,Array(),this指向的是window,不是new调用,会给window绑定上构造函数的属性,但在严格模式下,this指向不是window,是undefined了,会报错,但是new对象时,不会保存。
3.定时器的this在严格模式下还是window
4.事件和对象this还是指向调用者
严格模式对函数的影响
1.函数不能有重名参数,
2.函数必须声明在顶层,es6会引入块级作用域,不允许在非函数的代码块中声明函数。即不能在语句中定义一个函数。