关键字:标识符、执行上下文、作用域、作用域链、变量对象、活动对象理论知识
理解JavaScript如何管理作用域和作用域链很重要。因为在作用域链中要查找的变量对象的个数直接影响标识符解析的性能。标识符在作用域链中的位置越深,查找和访问它所需的时间越长;如果作用域管理不当,就会给脚本的执行时间带来负面影响。
当执行JavaScript代码时,JavaScript引擎会创建一个执行上下文(Execution Context)。执行上下文(有时被称为作用域)设定了代码执行时所处的环境。JavaScript引擎会在页面加载后创建一个全局的执行上下文,然后每执行一个函数时都会创建一个对应的执行上下文,最终建立一个执行上下文的堆栈,当前起作用的执行上下文在堆栈的最顶端。
每个执行上下文都有一个与之关联的作用域链,用于解析标识符。作用域链包含一个或多个变量对象,这些对象定义了执行上下文作用域内的标识符。全局执行上下文的作用域链中只有一个变量对象,它定义了JavaScript中所有可用的全局变量和函数。当函数被创建(不是执行)时,JavaScript引擎会把创建时执行上下文的作用域链赋给函数的内部属性[[Scope]]。然后,当函数被执行时,JavaScript引擎会创建一个活动对象(Activetion Object),并在初始化时给this、arguments、命名参数和该函数的所有局部变量赋值。活动对象会出现在执行上下文作用域链的顶端,紧接其后的是函数[[scope]]属性中的对象。
在执行代码时,JavaScript引擎通过搜索执行上下文的作用域链来解析诸如变量和函数名这样的标识符。解析标识符的过程从作用域的顶端开始,按照自上而下的顺序进行。
验证理论
function add(num1, num2) {
return num1 + num2;
}
当这段代码执行开始时,add函数拥有一个仅包含全局变量对象的[[scope]]属性。如下图:
在执行add函数时,JavaScript引擎会创建一个新的执行上下文和一个包含this、arguments、num1、num2的活动对象,并把活动对象添加到作用域链中。在add()函数内部运行时,JavaScript引擎需要解析函数里的num1和num2标识符。var total = add(5, 10);
解析过程是从作用域链中的第一个对象开始,这个对象就是包含该函数局部变量的活动对象。如果在该对象中没有找到标识符,就会继续在作用域链中下一个对象里查找标识符。一旦找到标识符,查找就结束。
高效的数据存取
局部变量是JavaScript中读写最快的标识符。
一个好的经验:任何非局部变量在函数中的使用超过一次时,都应该将其存储为局部变量。
对于数组和对象,始终将那些需要频繁存取的值存储到局部变量中。
实际上每次存取HTMLCollection对象属性,都会对DOM文档进行动态查询。
如果需要对HTMLCollection对象的成员反复存取,高效的方式是将它们复制到数组里。
相关推荐:
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
如何用AI改文章,让写作更高效、精准,提升内容质量
wordpress seo是什么,wordpress建站seo好做吗 ,学习图文ai
什么是seo推广找行者SEO,seo推广效果怎么样 ,西宁ai万词霸屏系统
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台
SEO地址优化的秘诀:提升网站排名与流量的关键,临沂如何优化网站关键词
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
seo都有什么意思,seo 啥意思 ,ai园林
为什么“搜狗不收录”会成为企业SEO的新挑战?,烤肉店的线下营销与推广
用AI写科普文章:科技改变写作的未来
AI通过算法和数据生成的作品:科技与艺术的跨越,带来无限创意可能,ai优化程序
seo要学什么技术,seo要学什么技术好 ,ai.fale
SEO快速优化排名:助你网站跃升搜索引擎首页,ai彩虹立体9怎么做
SEO符合:提升网站排名的秘诀,助力企业赢在搜索引擎优化的赛道,优化没续费 网站没了
SEO需要什么语音,seo需要考虑什么 ,学生作业ai
SEO运营工作是什么,seo公司运营 ,720516AI
文章自动生成AI:助力写作新时代,让创作更高效
SEO搜索关键词是什么意思?让你轻松网站流量的秘密!,ai颜色不对
优化网站的秘诀:提高网站速度与用户体验,助力业务腾飞,旅游网站建设步骤
ChatGPT在处理文本时可能无法完全理解上下文的复杂性,肌肉ai
优化公司:助力企业腾飞的秘密武器,微信营销推广价格多少
SEO课:让你从小白变成搜索引擎优化高手,推广自媒体营销计划
SEO广告:如何借助SEO提升品牌曝光与销售业绩?,网站推广怎么选择
SEO才能:提升网站排名,突破网络营销的核心竞争力,南宁本地seo营销公司
未来写作新方式原创AI文章的无限可能
SEO合同:确保您网站优化成功的关键保障,微博营销推广规则最新
《权重参谋:让您的网站轻松登顶搜索引擎的秘密武器》,设计微信社群私域营销推广简案
ChatGPT不能加载过去的对话,如何提升你的使用体验?,ai智能衣服
GPT哪个模型是最新的?AI语言生成的未来,ai回头
ChatGPT页面无法翻阅?带你深度了解背后的原因与解决方案,pdf怎么转换ai文字
在线AI文章:为您打造全新内容创作体验
pbootcms自动翻译插件,让你的网站轻松实现多语言覆盖,ai 镀金
seo用什么写属性写,seo属于什么 ,芭田科学施肥AI
SEO提供:如何通过精准的SEO策略提升网站流量与品牌影响力,刷关键词排名立的火星
ChatGPT界面看不到用户:隐秘的互动方式与智慧的背后,AI和UR
主题导航-引领互联网世界的智慧之路,大渡口网站建设方案
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
什么是seo手段,seo的具体手段 ,中国ai 企业
seo需要干什么,seo需要具备什么知识 ,ai梦境档案世岛大宅
ChatGPT空白对话:释放创意,开启智能对话的新世界,ai重庆南坪
AI免费生成:开启智能创作新纪元,助力你的创意无限可能
“扩写AI”-引领写作革命,开启智能创作新时代,dede seo 标题如何填写
360ai答题-赋能教育,开启智能学习新纪元,ai 果汁
SEO针对中小企业的增长潜力:如何通过精准优化抢占市场先机,网络推广和营销就选y火10星评价
seo需要做些什么,做seo的 ,超级ai地图
如何用AI写公众号文章?让创作更高效、更轻松
ChatGPT网页版为什么不能用了?解析原因与解决办法,女人莫名其妙想ai
什么是seo技术,什么是seo及seo的作用 ,AI倒放仓鼠
未来智能:AI智能人工软件引领数字化变革