Products
GG网络技术分享 2025-11-25 00:26 3
亲喜欢的细小伙伴们,你们晓得吗?个个施行上下文dou会有一个变量对象,就像我们的钱包一样,里面装着各种各样的宝贝。这些个宝贝就是函数中定义的变量、函数声明、形参等等。变量对象的类型有三种, 就像我们的钱包有不同的款式一样:函数施行上下文、全局施行上下文和模块施行上下文。

比如 我有这样一个钱包:
var a = 1;
var obj = {
a: 2,
foo: function {
console.log;
}
};
obj.foo; // 输出2
var bar = obj.foo;
bar; // 在非严格模式下输出1,在严格模式下输出undefined
在这玩意儿例子中,obj.foo调用时钱包里的东西指向的是obj对象,而bar调用时钱包里的东西指向的是全局对象window。
施行上下文,就像是我们的学校,个个同学在上课时dou有自己的一张课桌,这玩意儿课桌就是施行上下文。在JavaScript中,每创建一个施行上下文。这玩意儿上下文里面装着全部施行代码所需的东西,比如变量名、函数声明、参数等等。
施行上下文是JavaScript运行时的一个基本概念, 就像是我们的学校规则,它负责维护代码的施行周围。在JavaScript中, 有三种不同类型的施行上下文:全局施行上下文、函数施行上下文和eval函数施行上下文。
当JavaScript代码开头施行时会先进入施行上下文的创建阶段。这玩意儿阶段就像是我们打开钱包,开头放东西。这玩意儿过程会Zuo以下操作:
这玩意儿阶段hen关键,基本上原因是它决定了我们的钱包里面有哪些宝贝。
创建阶段收尾后进入施行阶段,就像是我们开头用钱包里的宝贝。在这玩意儿阶段中,JavaScript会一行一行地施行代码。
作用域链,就像是我们的宝贝寻找之路。它是一个指向变量对象的指针列表,用来解析变量名。
比如 我们有一个这样的钱包:
{ arguments: { }, b: undefined, c: reference to FunctionDeclaration "c", d: undefined }
在这玩意儿钱包里函数形参被添加到了活动对象中,变量声明语句只是在变量对象中添加了一个名称和一个
通过学施行上下文,我们Nenggeng优良地搞懂JavaScript的运行机制,优化我们的代码,让它变得geng加高大效。所以细小伙伴们,让我们一起学,一起进步吧!
Demand feedback