一个挺有意思的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重要知识更新
Jul 08 Javascript
一个javascript参数的小问题
Mar 02 Javascript
Chosen 基于jquery的选择框插件使用方法
May 30 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
Jul 11 Javascript
微信小程序 Toast自定义实例详解
Jan 20 Javascript
关于JavaScript中forEach和each用法浅析
Jul 27 Javascript
Node.js 使用流实现读写同步边读边写功能
Sep 11 Javascript
Vue 2.0入门基础知识之内部指令详解
Oct 15 Javascript
JS实现可视化文件上传
Sep 08 Javascript
在node中使用jwt签发与验证token的方法
Apr 03 Javascript
vuejs中父子组件之间通信方法实例详解
Jan 17 Javascript
小程序中的箭头函数的具体使用
Jun 19 Javascript
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
Function eregi is deprecated (解决方法)
2013/06/21 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
PHP+JS三级菜单联动菜单实现方法
2016/02/24 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
Vue组件通信的四种方式汇总
2018/02/08 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
Python 可视化神器Plotly详解
2020/12/26 Python
电子商务专业个人的自我评价分享
2013/10/29 职场文书
高一地理教学反思
2014/01/18 职场文书
售后服务经理岗位职责范本
2014/02/22 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
法定代表人授权委托书
2014/04/04 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
征兵宣传标语
2014/06/20 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
公司授权委托书样本
2014/09/15 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
十八大观后感
2015/06/12 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python