一个挺有意思的Javascript小问题说明


Posted in Javascript onSeptember 26, 2011

先来看以下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 获取模态窗口的滚动位置代码
Aug 06 Javascript
js获取当月最后一天实例代码
Nov 19 Javascript
JavaScript中的toDateString()方法使用详解
Jun 12 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
Jun 02 Javascript
Javascript实现代码折叠功能
Aug 25 Javascript
从零学习node.js之利用express搭建简易论坛(七)
Feb 25 Javascript
基于JavaScript实现弹幕特效
Aug 27 Javascript
Mongoose实现虚拟字段查询的方法详解
Aug 15 Javascript
React中的render何时执行过程
Apr 13 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
Aug 06 Javascript
Vue解决echart在element的tab切换时显示不正确问题
Aug 03 Javascript
vue实现按钮切换图片
Jan 20 Vue.js
Jquery之Ajax运用 学习运用篇
Sep 26 #Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
Sep 26 #Javascript
在Windows上安装Node.js模块的方法
Sep 25 #Javascript
javascript权威指南 学习笔记之null和undefined
Sep 25 #Javascript
利用JS自动打开页面上链接的实现代码
Sep 25 #Javascript
javascript权威指南 学习笔记之javascript数据类型
Sep 24 #Javascript
最简单的js图片切换效果实现代码
Sep 24 #Javascript
You might like
短波的认识
2021/03/01 无线电
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
js实现中文实时时钟
2020/01/15 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
Scrapy框架使用的基本知识
2018/10/21 Python
python如何实现一个刷网页小程序
2018/11/27 Python
Python占用的内存优化教程
2019/07/28 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
高级护理专业大学生求职信
2013/10/24 职场文书
财务助理岗位职责
2013/11/10 职场文书
个人评价范文分享
2014/01/11 职场文书
铁路工务反思材料
2014/02/07 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
2014年销售员工作总结
2014/12/01 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
MySQL Server 层四个日志
2022/03/31 MySQL
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript