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变量的有效期始于其被创建时
- 局部变量在函数完成时被删除
- 全局变量在关闭页面时被删除