详解JavaScript之作用域
作用域是可拜访变量的汇合。
JavaScript 作用域
在 JavaScript 中, 对象和函数一样也是变量。
在 JavaScript 中, 作用域为可拜访变量,对象,函数的汇合。
JavaScript 函数作用域: 作用域在函数内修改。
JavaScript 部分作用域
变量在函数内声明,变量为部分作用域。
部分变量:只能在函数内部拜访。
// 此处不克不及调取 carName 变量 function myFunction() { var carName = "Volvo"; // 函数内可调取 carName 变量 }
由于部分变量只作用于函数内,所以不一样的函数可以使用雷同名称的变量。
部分变量在函数开端施行时创立,函数施行完后部分变量会主动烧毁。
JavaScript 全局变量
变量在函数外定义,即为全局变量。
全局变量有 全局作用域: 网页中所有足本和函数均可使用。
var carName = " Volvo"; // 此处可调取 carName 变量 function myFunction() { // 函数内可调取 carName 变量 }
假如变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。
以下实例中 carName 在函数内,但是为全局变量。
// 此处可调取 carName 变量 function myFunction() { carName = "Volvo"; // 此处可调取 carName 变量 }
JavaScript 变量生命周期
JavaScript 变量生命周期在它声明时初始化。
部分变量在函数施行完毕后烧毁。
全局变量在页面关闭后烧毁。
函数参数
函数参数只在函数内起作用,是部分变量。
HTML 中的全局变量
在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。
//此处可使用 window.carName function myFunction() { carName = "Volvo"; }
你晓得吗?
你的全局变量,或者函数,可以覆盖 window 对象的变量或者函数。
部分变量,包罗 window 对象可以覆盖全局变量和函数。
补充
ES6 中的 let 关键字
let 同意你声明一个作用域被限制在块级中的变量、语句或者表达式。与var关键字不一样的是,它声明的变量只能是全局或者整个函数块的。
let 语法:
let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]];
let 声明的变量只在其声明的块或子块中可用,这一点,与 var 类似。二者之间最主要的不同在于 var 声明的变量的作用域是整个封闭函数。
let
和 var
的不同代码实例:
function varTest() { var x = 1; if (true) { var x = 2; // 一样的变量! console.log(x); // 2 } console.log(x); // 2 } function letTest() { let x = 1; if (true) { let x = 2; // 不一样的变量 console.log(x); // 2 } console.log(x); // 1 }
相关学习引荐:javascript视频教程
以上就是详解JavaScript之作用域的具体内容,更多请关注百分百源码网其它相关文章!