一个挺有意思的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 相关文章推荐
分享8款优秀的 jQuery 加载动画和进度条插件
Oct 24 Javascript
jQuery中[attribute*=value]选择器用法实例
Dec 31 Javascript
JavaScript处理解析JSON数据过程详解
Sep 11 Javascript
jQuery如何封装输入框插件
Aug 19 Javascript
详解JavaScript RegExp对象
Feb 04 Javascript
angular2 ng2 @input和@output理解及示例
Oct 10 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
Nov 22 Javascript
VueRouter导航守卫用法详解
Dec 25 Javascript
Vue中render函数的使用方法
Jan 31 Javascript
p5.js入门教程和基本形状绘制
Mar 15 Javascript
angularjs 动态从后台获取下拉框的值方法
Aug 13 Javascript
H5实现手机拍照和选择上传功能
Dec 18 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
B2K与车机的中波PK
2021/03/02 无线电
生成php程序的php代码
2008/04/07 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
Backbone.js中的集合详解
2015/01/14 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python如何实现excel数据添加到mongodb
2015/07/30 Python
Python实现购物车功能的方法分析
2017/11/10 Python
Python实现简单的语音识别系统
2017/12/13 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
Python补齐字符串长度的实例
2018/11/15 Python
Python字符串对象实现原理详解
2019/07/01 Python
python程序文件扩展名知识点详解
2020/02/27 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
简历中个人自我评价范文
2013/12/26 职场文书
简单英文演讲稿
2014/01/01 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
表扬稿格式范文
2015/01/16 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
优秀创业计划书分享
2019/07/19 职场文书
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL