首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JavaScript的作用域(学习札记二)

2012-10-13 
JavaScript的作用域(学习笔记二)看看下面代码的执行结果:?var balert(b)b hello?JavaScript在编译

JavaScript的作用域(学习笔记二)

看看下面代码的执行结果:

?

var b;alert(b);b = "hello";

?JavaScript在编译的时候,凡是遇到var关键字的,都会在变量所处作用域内的最顶端先声明这个变量。这样,就很好理解为什么alert(b)的时候是undefined了。

?

2、接着在分析alert(a)。大家都知道,在JavaScript中,如果直接给一个从未声明过的变量赋值,那么,这个变量就会默认为是全局变量。既然是全局变量,为什么alert(a)的时候,会有错误?应该和alert(b)一样,打印出undefined啊?其实不然。因为 a = “hello”,前面没有var关键字,所以,在编译的时候,js编译器不认为这条语句有什么特殊性,就是一条普通的语句。说到这里,大家会明白,只有执行到 a = "hello"这一行时,js才会声明一个变量a,并给变量a赋值,在这之前,根本就没有a这个变量,先前的alert(a)肯定会报错的。

?

?

热点排行