JS核心-part4

时间:2021-08-16
本文章向大家介绍JS核心-part4,主要包括JS核心-part4使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

(1). 作用域(scope):
a. 什么是: 一个变量的可用范围
b. 为什么: 避免不同范围之间的变量互相干扰。

c. js中包括: 2级:

1). 全局作用域:
i. 什么是: 在程序的任何位置都能访问都的范围
ii. 保存着: 全局变量——任何位置都能访问
iii. 包括: 一切不属于任何函数和对象的变量和函数

2). 函数作用域:
i. 什么是: 函数{}范围内才能访问的区域
ii. 保存着: 局部变量——函数{}范围内才能访问
iii. 强调: 只有函数的{},才能形成作用域!
只要不是函数的{},都不是作用域
iv. 局部变量包括2种情况:
①在函数内var创建的变量
②函数的形参变量默认就是局部变量(虽然没有var)

(3). 作用域的原理: 4个阶段
a. 定义函数时:
每个函数对象身上都有一个"好友列表"
普通函数的好友列表只有两个格子。
离自己近的格子,暂时为空,预留
离自己远的格子,保存window对象的引用关系。

b. 调用函数时:做菜三部曲
第一步——备料
1). 临时创建函数作用域对象,并将函数作用域对象的地址,保存到好友列表中离函数近的格子里。
2). 在函数作用域对象中临时添加函数的局部变量
第二步——按菜谱做菜
1). 每用到一个变量,js引擎都会先在离自己近的函数作用域对象中查找使用。如果函数作用域对象中找到了想要的变量,则不再去全局找
2). 如果函数作用域对象中没有找到想用的变量,js引擎就会延好友列表继续去全局查找变量使用。
3). 总结: 变量的使用遵循就近原则
d. 函数调用后: 第三步——收拾
清空好友列表中离函数近的格子
导致临时函数作用域对象释放
导致所有局部变量一同释放!
——所以局部变量在函数调用后都不可用!

原文地址:https://www.cnblogs.com/cansliang/p/15147380.html