2.1.5 变量优先级

在JavaScript中,变量是可以重新定义的,在作用域相同的时候,JavaScript会只执行其赋值语句。但是可以在前面定义一个全局变量,然后再在函数中定义一个名字相同的局部变量。一般在这种情况下,作用域越小的变量优先级越高,例如:

这段代码输出的结果是,在函数中a的值为“2”,在函数外的输出结果是“1”,输出如图2.8所示。

图2.8 样例输出2.8

从输出可以看到,在函数中,局部变量的优先级是高于全局变量的,虽然变量的名字相同,但是局部变量不会影响到同名全局变量在函数外的值。