时间:2021-05-25
先来看以下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高手解惑
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
之前在知乎看到有人在问自己写了一个冒泡排序算法如何用HTML,CSS,JavaScript展现出来排序过程。感觉这个问题还挺有意思。前些时间就来写了一个。这里记
几天前在论坛看到一个帖子http://bbs.chinaunix.net/thread-4184581-1-1.html这是个挺有意思的问题。我自己做了几个试验
作者发的是一张图,大家可以放大看。前些天说过关于JavaScript的LiteralSyntax问题,觉得挺有意思的,于是又研究了一下,能不能把对象再转化为Li
这是一个挺有意思的讨论话题。如果你运行下面的代码Integera=1000,b=1000;System.out.println(a==b);//1Integer
这个是看知乎的时候发现的一个问题,感觉挺有意思,就将自己遇到的坑记录下来。1、AndoridLthemecolorPrimary不能使用带有alpha的颜色值,