一个挺有意思的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编程起步(第四课)
Feb 27 Javascript
Mootools 1.2教程 事件处理
Sep 15 Javascript
阻止子元素继承父元素事件具体思路及实现
May 02 Javascript
jquery中的查找parents与closest方法之间的区别
Dec 02 Javascript
JavaScript+CSS控制打印格式示例介绍
Jan 07 Javascript
jQuery带时间的日期控件代码分享
Aug 26 Javascript
JavaScript中Window对象的属性及事件
Dec 25 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
Jul 25 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
Jan 11 Javascript
Bootstrap路径导航与分页学习使用
Feb 08 Javascript
JS获取一个表单字段中多条数据并转化为json格式
Oct 17 Javascript
JS实现小米轮播图
Sep 21 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简单静态页生成过程
2008/03/27 PHP
php采集速度探究总结(原创)
2008/04/18 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
php微信开发之图片回复功能
2018/06/14 PHP
js实现单一html页面两套css切换代码
2013/04/11 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
jQuery链使用指南
2015/01/20 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
python七夕浪漫表白源码
2019/04/05 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
学习党章思想汇报
2014/01/07 职场文书
国税会议欢迎词
2014/01/16 职场文书
应届生求职自荐信
2014/07/04 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript