Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29955601
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2010-03-16 23:24:16

今天看到一道Javascript题目,题目如下:
有两段Javascript代码,分别写出代码运行结果。

代码一:

JAVASCRIPT:

代码二:

JAVASCRIPT:


我们都知道,在Javascript语言中,函数中的变量如果不用var声明而直接赋值的话,Javascript会自动把该变量看成一 个全局变量。按着这种思路,代码一中a()函数中的变量声明语句正常执行了,也就是变量b在函数内部声明成功,那b应该就是个局部变量 了;代码二,由于条件不成立,a()的变量声明语句未执行,那么b就是一个全局变量了,所以结果就:
代码一:出错,b未定义;
代码二:弹出提示框,内容为1

可是!!!经过上机测试,发现两段代码都是出现“‘b’未定义”,看来Javascript并不是按上面的思路去执行的——Javascript不 管条件是否成立,都会认为var声明是有效的。用下面的代码片段能够更好的理解Javascript变量处理机制:

JAVASCRIPT:

如果Javascript的变量声明var是无条件执行的话,程序运行的结果应该是:弹出“undefined”,否则,程序结果是:报错,’b'未定 义。
上机测试结果是,弹出“undefined”,也就证明了Javascript中的var变量声明时是无条件执行的

阅读(1332) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~