二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题:JavaScript作用域
JavaScript 作用域
在JavaScript中,对象和函数也是变量.
在JavaScript中,作用域是你可以访问的变量、对象和函数的集合.
JavaScript 有函数作用域: 这个作用域在函数内变化.
本地JavaScript变量
一个变量声明在JavaScript函数内部,成为函数的局部变量
局部变量有局部作用域: 它们只能在函数中访问.
// code here can not use carName function myFunction() { var carName = "Volvo"; // code here can use carName }由于局部变量只在它们的函数中被识别,所以具有相同名称的变量可以在不同的函数中使用.
当函数启动时创建局部变量,当函数完成时删除.
全局JavaScript变量
函数外声明的变量, 成为全局变量.
全局变量具有全局作用域: 网页上的所有脚本和函数都可以访问它.
var carName = " Volvo"; // code here can use carName function myFunction() { // code here can use carName }
自动全局
如果给未声明的变量赋值, 它会自动成为全局变量.
此代码示例将声明一个全局变量carName,即使赋的值是函数内部.
myFunction(); // code here can use carName function myFunction() { carName = "Volvo"; }不要创建全局变量,除非你非常需要
在严格模式下 "Strict Mode"自动全局变量将失败.
在HTML中的全局变量
在JavaScript中,全局作用域是完整的JavaScript环境
在HTML中,全局作用域是window对象。所有的全局变量都属于window对象。
var carName = "Volvo"; // code here can use window.carName你知道吗?
全局变量(或函数)可以覆盖窗口变量(或函数). 任何函数,包括窗口对象,都可以覆盖全局变量和函数.
JavaScript变量的生命周期
一个JavaScript变量的生命周期从声明时开始.
当函数完成时会删除局部变量.
全局变量在关闭页面时被删除.
Function 参数
函数实际参数(形式参数)作为函数内的局部变量使用.