js的变量分为全局变量和局部变量,全局变量是在函数体外申明的变量,在整个作用域中都可以使用。局部变量是在函数体内申明的变量且必须使用var标记,否则仍被视为全局变量,只能在申明的函数体内使用。
var x = 1;
function test() {
document.write('函数体内x的值为:' + x + '<br/>'); //1
x = 19;
y = 20;
var z=21;
document.write('函数体内对x重新赋值,此时x的值为:' + x + '<br/>'); //19
document.write('函数体内y的值为:' + y + '<br/>'); //20
}
document.write('函数体外x的值为:' + x + '<br/>'); //1
test();
document.write('x的值为:' + x + '<br/>'); //19
document.write('y的值为:' + y + '<br/>'); //20
document.write('z的值为:' + z + '<br/>'); //错误
document.write('<hr color="red"/>');
运行结果:
函数体外x的值为:1
函数体内x的值为:1
函数体内对x重新赋值,此时x的值为:19
函数体内y的值为:20
x的值为:19
y的值为:20
注:y在函数内部未使用var定义,被视为全局变量。
错误信息:
Uncaught ReferenceError: z is not defined
注:由于变量z是在函数里面定义的局部变量,所以函数外部无法获取。