一个挺有意思的Javascript小问题说明
一个挺有意思的Javascript小问题说明
发布时间:2016-12-30 来源:查字典编辑
摘要:先来看以下3段代码复制代码代码如下:varfirstName="Mark";(functionDisplayFirstName(){cons...

先来看以下3段代码

复制代码 代码如下:

var firstName = "Mark";

(function DisplayFirstName() {

console.log(firstName);

})();//必然输出 Mark

var lastName = "Aut";

(function DisplayLastName() {

var lastName = "Bru";

console.log(lastName);

})();//必然输出 Bru, 本地作用域的优先级高于全局作用域

//那么下面这段代码呢?

var lastName = "Aut";

(function DisplayLastName() {

console.log(lastName);

var lastName = "Bru";

console.log(lastName);

})();//谁能猜出结果是什么?

这个输出的结果是:

LOG: undefined

LOG: Bru

这出乎了我的意料, 我原来以为应该是 "Aut" 和 "Bru"的

我原来的理解是: 在程序第一个输出lastName的时候, 程序没有找到本地声明的lastName变量,所以使用了全局的lastName定义, 第二次的时候才使用本地变量的值

(因为在我的概念里,javascript是解释型语言,一句一句的......执行)

看到这个结果,看来javascript的执行并不都是顺序的..

目前为止,就我的猜测,javascript执行应该是先做语法分析,然后顺便分析完成了变量表(本地和全局)

然后才开始顺序执行一行行脚本

还请各位javascript高手解惑

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类