一个挺有意思的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 相关文章推荐
js+数组实现网页上显示时间/星期几的实用方法
Jan 18 Javascript
如何动态的导入js文件具体该怎么实现
Jan 14 Javascript
一个简单不报错的summernote 图片上传案例
Jul 11 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
jstree单选功能的实现方法
Jun 07 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
Nov 11 Javascript
对angular4子路由&辅助路由详解
Oct 09 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 Javascript
node后端服务保活的实现
Nov 10 Javascript
Vue Router中应用中间件的方法
Aug 06 Javascript
如何区分vue中的v-show 与 v-if
Sep 08 Javascript
使用Cargo工具高效创建Rust项目
Aug 14 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
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
js定时器+简单的动画效果实例
2017/11/10 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
打开电脑上的QQ的python代码
2013/02/10 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
Python reversed函数及使用方法解析
2020/03/17 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
会计自我鉴定
2013/11/02 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
质量保证书格式
2015/02/27 职场文书
大学生自荐书范文
2015/03/05 职场文书
公司酒会主持词
2015/07/02 职场文书
初中班长竞选稿
2015/11/20 职场文书