一个挺有意思的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代码
Mar 27 Javascript
jquery插件制作 自增长输入框实现代码
Aug 17 jQuery
JavaScript实现QueryString获取GET参数的方法
Jul 02 Javascript
jQuery UI库中dialog对话框功能使用全解析
Apr 23 Javascript
第十章之巨幕页头缩略图与警告框组件
Apr 25 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
Jul 04 Javascript
js实现弹窗暗层效果
Jan 16 Javascript
JS中将多个逗号替换为一个逗号的实现代码
Jun 23 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
layui框架中layer父子页面交互的方法分析
Nov 15 Javascript
echarts多条折线图动态分层的实现方法
May 24 Javascript
简单了解微信小程序的目录结构
Jul 01 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
MySQL授权问题总结
2007/05/06 PHP
php+javascript的日历控件
2009/11/19 PHP
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
老生常谈PHP位运算的用途
2017/03/12 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
Smarty模板语法详解
2019/07/20 PHP
javascript父子页面通讯实例详解
2015/07/17 Javascript
jQuery实现的可编辑表格完整实例
2016/06/20 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python实现人人网登录示例分享
2014/01/19 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
学python需要去培训机构吗
2020/07/01 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
介绍一下linux文件系统分配策略
2012/11/17 面试题
服装设计行业个人的自我评价
2013/12/20 职场文书
运动会广播稿80字
2014/01/23 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
道路建设实施方案
2014/03/18 职场文书
个人委托书格式
2014/04/04 职场文书
关于诚信的活动方案
2014/08/18 职场文书
重点工程汇报材料
2014/08/27 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
英文慰问信
2015/02/14 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA