住宅百科

js作用域和作用域链以及预解析

变量---->局部变量和全局变量,

范围:在一定的空间范围内,可以读写数据

本地范围和全局范围

js中没有块级作用域——一对括号中定义的变量,这个变量可以在大括号之外使用
函数中定义的变量是局部变量
作用域链:使用变量时,从内向外,逐层查找。找到后就可以直接使用了
逐层搜索后,如果在0级范围搜索时仍然没有找到变量,结果会报错

在 JavaScript 中,对象和函数也是变量。

在 JavaScript 中,作用域是可访问变量、对象和函数的集合。

JavaScript 函数作用域:作用域在函数内修改。

JavaScript 本地作用域

变量在函数内声明并具有局部作用域。

局部变量:只能在函数内部访问。

因为局部变量只作用在函数内部,所以不同的函数可以使用同名的变量。

局部变量在函数开始执行时创建。局部变量在函数执行后自动销毁。

JavaScript 全局变量

在函数外部定义的变量是全局变量。

全局变量具有全局作用域:网页中的所有脚本和函数都可以使用。

如果变量没有在函数内声明(不使用var关键字),则该变量是全局变量。

JavaScript变量生命周期

JavaScript 变量生命周期在声明时初始化。

局部变量在函数执行完成后被销毁。

功能参数

函数参数仅在函数内部起作用,并且是局部变量。

HTML 中的全局变量

在 HTML 中,全局变量是窗口对象:所有数据变量都属于窗口对象。

作用域链:从子集作用域返回到父作用域的过程

本地有能力改变外部(全局)值

准备:

预解析:在当前作用域内,js运行之前,带有var和function关键字的预声明会被安排在内存中。然后从上到下执行js语句。

仅对通过 var 定义的变量和函数进行准备。

以上就是小编为大家介绍的js作用域、作用域链、预解析的详细讲解和整合。希望对您有所帮助。如果您有任何疑问,请给我留言,编辑会及时回复您。 。也非常感谢大家对来客网网站的支持!