21 JavaScript作用域&全局变量与局部变量&变量的生命周期

JavaScript作用域:

在JavaScript中有两种作用域类型:

  • 局部作用域
  • 全局作用域

JavaScript拥有函数作用域,每个函数创建一个新的作用域。

作用域决定了变量的可访问性。

  • 函数内部定义的变量叫做局部变量,从函数外部是不可访问的,函数参数也是局部变量。
  • 函数之外声明的变量叫做全局变量,作用域是全局的,网页所有脚本和函数都能够访问它。

自动全局:

为尚未声明的变量赋值,此变量会自动成为全局变量。

以下carName没有用var声明。

<script>
myFunction();
document.getElementById("demo").innerHTML = carName;
function myFunction(){
    carName = "show!";
}
</script>

HTML全局变量:

HTML中,全局作用域是window,它形成了完整的JavaScript环境,所有全局变量均属于window对象。

因此,除非有意为之,不建议随意创建全局变量,因为它能够覆盖window变量或者函数。

任何函数也能够覆盖你的全局变量和函数。

JavaScript变量的有效期:

  • JavaScript变量的有效期始于其被创建时
  • 局部变量在函数完成时被删除
  • 全局变量在关闭页面时被删除

猜你喜欢

转载自www.cnblogs.com/ltfxy/p/11837437.html