全部博文(2065)
分类: 系统运维
2010-03-16 23:24:16
今天看到一道Javascript题目,题目如下:
有两段Javascript代码,分别写出代码运行结果。
代码一:
代码二:
我们都知道,在Javascript语言中,函数中的变量如果不用var声明而直接赋值的话,Javascript会自动把该变量看成一
个全局变量。按着这种思路,代码一中a()函数中的变量声明语句正常执行了,也就是变量b在函数内部声明成功,那b应该就是个局部变量
了;代码二,由于条件不成立,a()的变量声明语句未执行,那么b就是一个全局变量了,所以结果就:
代码一:出错,b未定义;
代码二:弹出提示框,内容为1
可是!!!经过上机测试,发现两段代码都是出现“‘b’未定义”,看来Javascript并不是按上面的思路去执行的——Javascript不 管条件是否成立,都会认为var声明是有效的。用下面的代码片段能够更好的理解Javascript变量处理机制:
如果Javascript的变量声明var是无条件执行的话,程序运行的结果应该是:弹出“undefined”,否则,程序结果是:报错,’b'未定
义。
上机测试结果是,弹出“undefined”,也就证明了Javascript中的var变量声明时是无条件执行的。