注意本文主要会以视频的形式呈现,由于目前微信不支持直接发送付费视频,故这里以图文的形式出现,视频见最后,这里需要注意的是,已经购买知识星球的童鞋没有必要购买此付费合集,后面也会在知识星球呈现,由于后面知识星球的价格会上涨,故这里的价格是低于后面的知识星球的价格的,不想要其他内容的童鞋可以直接购买此付费合集
注意:本文视频中知识点相对比较详细一些
首先,我们来谈谈作用域。在JavaScript中,作用域是一个非常重要的概念,它定义了变量、函数和对象的可访问性。换句话说,作用域决定了代码块中的变量、函数和对象在何处以及如何被访问。
JavaScript有以下类型的作用域:
全局作用域:在代码的任何地方都可以访问全局作用域中的变量、函数和对象。当你在所有函数外部声明一个变量时,该变量就有了全局作用域。例如:
var globalVar = "I am a global variable";
function test() {
console.log(globalVar); // Outputs: "I am a global variable"
}
函数作用域:函数作用域通常存在于函数内部,你只能在该函数内部访问这些变量、函数和对象。每个函数都有自己的作用域。
例如:
function test() {
var localVar = "I am a local variable";
console.log(localVar); // Outputs: "I am a local variable"
}
console.log(localVar); // Uncaught ReferenceError: localVar is not defined
接下来,我们来谈谈作用域链。当在一个作用域中查找某个变量的值时,JavaScript会首先在当前作用域中查找。如果在当前作用域中找不到,它会去父级作用域中查找,依此类推,直到找到该变量或达到全局作用域。这个查找过程就形成了一条链,我们称之为作用域链。
例如:
var globalVar = "I am a global variable";
function outerFunction() {
var outerVar = "I am an outer function variable";
function innerFunction() {
var innerVar = "I am an inner function variable";
console.log(innerVar); // Outputs: "I am an inner function variable"
console.log(outerVar); // Outputs: "I am an outer function variable"
console.log(globalVar); // Outputs: "I am a global variable"
}
innerFunction();
}
outerFunction();
在这个例子中,innerFunction有访问自己作用域、outerFunction作用域和全局作用域的权限。这就形成了一个作用域链:innerFunction
-> outerFunction
-> global
重要注意点,先看下面这个例子:
原文始发于微信公众号(迪哥讲事):JavaScript精髓-03-作用域和作用域链
特别标注:
本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
- 我的微信
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论