JS预处理阶段、执行阶段的理解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JS预处理阶段、执行阶段的理解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含768字,纯文字阅读大概需要2分钟。
内容图文
![JS预处理阶段、执行阶段的理解](/upload/InfoBanner/zyjiaocheng/1303/123270a891914d8299ed102b15304b2f.jpg)
预处理阶段涉及到变量和(以函数声明方式声明的)函数的声明的提前的原理,并且涉及到声明变量冲突时候的一些问题。需要与执行阶段进行一定的区分,进而加深理解。
1. 预处理阶段将变量保存在window域中,会扫描用var操作符声明的变量以及用函数声明的方式声明的函数指针。因此会产生变量提前和函数声明提前的效果。
需要说明的是:
- 如果变量并没有用var声明,如b = 1;那么即使在函数执行阶段将其默认为全局变量,在预处理阶段也不会将其添加到window域中。直到执行到这一条语句的时候,才会将其和对应的值添加。
- 函数表达式用var声明,所以处理方式与用var声明的其他变量一样。
- 这段代码:
var a = 1; b = 2; function f (){console.log("11");} var g = function(){console.log("22");};
在预处理阶段window域的情况:
window{
f : 指向函数,
a : undefined,
g : undefined
}
在执行阶段window域的情况:
window{ f : 指向函数, a : 1, b : 2, g : 指向函数 }
2. 如果声明发生冲突。那么在预处理的时候遵循两个规则:a. 先扫描函数,再扫描var声明的变量;b. 如果与之前的声明发生冲突的是函数,则覆盖;如果是var声明的变量,则忽略,如下面这段代码:
alert(f); function f(){ console.log("11"); } var f = 1;
alert的将是"f(){console.log("11");}
原文:http://www.cnblogs.com/ideal-idiot/p/7889120.html
内容总结
以上是互联网集市为您收集整理的JS预处理阶段、执行阶段的理解全部内容,希望文章能够帮你解决JS预处理阶段、执行阶段的理解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。