js作用域

本文深入探讨JavaScript的作用域,包括全局作用域和函数作用域,详细解释了它们的特点和变量访问规则。同时,文章阐述了执行期上下文和预编译的概念,包括函数和全局作用域的预编译过程,帮助读者理解JS代码的运行机制。
摘要由CSDN通过智能技术生成

js的作用域

    作用域说明:一般理解指-个变量的作用范围

全局作用域

  1.  全局作用域在页面打开时被测建,页面关闭时被销毁
  2.  编写在script标签 中的变量和函数,作用域为全局,在页面的任意位置都可以访问到
  3.  在全局作用域中有全局对象window ,代表一个浏览器窗口,由浏览器创建,可以直接调用
  4.  全局作用域中声明的变量和函数会作为window对象的属性和方法保存

函数作用域

  1.  调用函数时,函数作用域被创建,函数执行完毕,函数作用域被销毁
  2.  每调用一次函数就会创建一个新的函数作用域,他们之间是相互独立的
  3.  在函数作用域中可以访问到全局作用域的变量,在函数外无法访问到函数作用域内的变量
  4.  在函数作用域中访问变量、函数会先在自身作用域中寻找,若没有找到,则会到函数的上一级作用域中寻找,一直到全局作用域

作用域的深层次理解

    执行期的上下文

    当函数代码执行的前期会创建一个执行期上下文的内部对象 A0 (作用域)

    这个内部的对象是预编译的时候创建出来的因为当函数被调用的时候会先进行预编译

    在全局代码执行的前期会创建一个执行期的上下文的对象GO

js的预编译

    这里有关js的预编译也简单的提一下

函数作用域预编译

    1.创建ao对象 AO{}

    2.找形参和变量声明将变量和形参名当做A0对象的属性名值为undef ined

    3.实参形参相统一

    4.在函数体里面找函数声明值赋予函数体

全局作用域的预编译

    1.创建GO对象

    2.找变量声明将变量名作为G0对象的属性名值是undef ined

    3.找函数声明值赋予函数体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李公子丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值