2.2js基础---预解析和严格模式

Posted wujiaolong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.2js基础---预解析和严格模式相关的知识,希望对你有一定的参考价值。

一、语言特性
        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.2js基础---预解析和严格模式的主要内容,如果未能解决你的问题,请参考以下文章

js的解析顺序 作用域 严格模式

js函数进阶

JS基础 模块设计

js中的严格模式和非严格模式的比较

ES6基础3--函数和闭包

Doctype的作用以及严格模式和混杂模式的区别