2.2、js基础---预解析和严格模式
标签:不能 兼容 bsp 执行 str undefined function val efi
一、语言特性
1、预解析:js会把变量的声明(仅仅是声明)提到顶部,但是不会突破作用域。
alert(a);var a= 12; //结果,undefined
2、页面无论多长都会进行预解析。
3、js语言执行步骤:
读取一个script标签=>预解析=>执行里面代码=>读取下一个script=>预解析=>执行代码
4、函数也有预解析,但是要注意:当以变量的形式声明的函数,预解析会按照变量的特性走,否则不按照。
a();//报错了。
var a=function(){
alert(1);
}
二、严格模式:
代码前边加‘use strict’【好处】,有作用域,高级浏览器兼容,ie9-不兼容。
好处: 1. 解决了局部函数中this是 window的bug;
2. 解决了不加val 声明变量的bug
3.避免在if switch,for while for in 里面定义函数。
4.with(元素.style){//严格模式下删除了with.
}
严格模式是有作用域的,
1、函数 在函数里面写就是只限于函数。
2、script标签
使用严格模式,‘use strict‘前边不能有代码
2.2、js基础---预解析和严格模式
标签:不能 兼容 bsp 执行 str undefined function val efi
原文地址:http://www.cnblogs.com/wujiaolong/p/7306095.html
评论