JS 自动全局变量,未声明便赋值的变量
自动全局变量
在函数内部“声明”并赋值的变量,怎么就不是局部变量,怎么就成了全局变量了呢?在JavaScript中,当未声明的变量直接进行赋值,就会变成自动全局变量。什么是未声明呢?比如为通过关键词var或其它关键词声明的变量,比如下面这样子:
variable = value;
自动全局变量实例代码,及在线编辑器
如下代码,在函数内部赋值一个变量funcvar,但是因为未声明的缘故,该变量将变成自动全局变量,在函数外部也可以对其进行引用:
<script>
function func1(){
x1 = 1 //未声明便赋值的变量
return x1
}
func1()
try{
alert(x1)
}catch(err){
alert(err.message)
}
</script>
实例代码提示
1、func1()函数必须先被调用,否则只是声明定义该函数而不调用的话,变量x1无法被赋值;2、通过try...catch...语句,可以发现,x1在函数之外被正确地引用了,并没有抛出异常。