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在函数之外被正确地引用了,并没有抛出异常。



全栈前端 / JavaScript语法 :





















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.