JS运行三部曲
js运行代码共分三步
JavaScript代码在运行时,首先会进行语法分析,通篇检查代码是否存在低级错误,然后进行预编译,整理内部的一个逻辑,最后再开始一行一行的执行代码
语法分析
代码在执行之前,系统会通篇扫描一遍,检查代码有没有低级的语法错误,比如少写个大括号。
预编译
预编译前奏
预编译发生在函数执行的前一刻。变量未经声明就赋值,此变量为全局对象所有
a = 3
var b = c = 4
一切声明的全局变量,全是window的属性
var a = 1 ===> window.a = 1
预编译四部曲
- 创建AO(Activation Object)对象(里面存储的是函数内部的局部变量)
- 找形参和变量声明,将变量和形参名做为AO属性名,值为undefined
- 将实参和形参统一
- 在函数体里面找函数声明,值赋予函数体
用一个例子来说明一下,也可以自己先给出一个答案,再继续往下看
function fn(a) {
console.log(a);
var a = 123;
console.log(a);
function a() {}
console.log(a);
var b = function() {};
console.log(b);
function d() {}
console.log(d)
}
fn(1);
第一步,创建AO(Activation Object)对象 {}第二步,找形参和变量声明,将变量和形参名做为AO属性名,值为undefined
{
a: undefined,
b: undefined,
}
第三步,将实参和形参统一
{
a: 1,
b: undefined,
}
第四步,找函数声明,值赋予函数体
{
a: function a() {},
b: undefined,
d: function d() {}
}
所以在函数fn执行的前一刻,a、b、d的值如上所示
所以fn(1)执行的结果为
// ƒ a() {}
// 123
// 123
// ƒ () {}
// ƒ d() {}
在全局作用域里,预编译过程有些许不同
- 创建GO(Global Object)对象(里面存储的是函数内部的全局变量)GO === window
- 找形参和变量声明,将变量和形参名做为GO属性名,值为undefined
- 在函数体里面找函数声明,值赋予函数体
解释执行
一行一行的执行代码
实践题
这里有几个例题,有兴趣的可以看一下
function test(a, b) {
console.log(a);
console.log(b);
var b = 234;
console.log(b);
a = 123;
console.log(a);
function a() {}
var a;
b = 234;
var b = function() {};
console.log(a);
console.log(b);
}
test(1);
global = 100;
function fn() {
console.log(global);
global = 200;
console.log(global);
var global = 300;
}
fn();
var global;
function test() {
console.log(b);
if (a) {
var b = 100;
}
c = 234;
console.log(c);
}
var a;
test();
a = 10;
console.log(c);
总结
多数情况下,我们都是采用下面的这种方式来处理预编译的一个过程
若是遇见复杂的情况就只能采用最原始的方式来解决问题了
相关推荐:
什么是seo在线咨询,什么是seo在线咨询服务 ,unreal ai
为什么“搜狗不收录”会成为企业SEO的新挑战?,烤肉店的线下营销与推广
实用AI工具:提升效率、优化生活的科技利器
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
专业SEO方案助力企业网站流量暴增,精准引流不再是难题,网站建设合同4篇
在线AI文章生成:智能写作的无限可能
SEO优化知识全解析:提升网站排名的秘密武器,ai出错合集
seo需要什么能力,seo需要哪些技术 ,ai长条弯曲
seo网站编辑是做什么,seo网站编辑可在家兼职 ,ai慢直播
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
撰写稿子的AI,写作的“超级助手”来了!
SEO而且:打造高效网站流量增长的秘密武器,滨江网站推广营销
为什么seo对企业重要,seo对企业进行网络营销的价值 ,ai李沁换脸鲍鱼
主流seo是什么,seo是什么推广网站 ,AI心理师
优化整站,让网站飞速增长,打造行业竞争力,广东网站建设与维护
优化公司:助力企业腾飞的秘密武器,微信营销推广价格多少
什么是seo平台seo教程,什么是 seoseo有何价值 ,论文写作ai助手公众号
ChatGPT发生故障,背后隐藏着哪些不为人知的原因与挑战?,硬件ai和软件ai
2024年AI写文章生成器推荐:让创作轻松高效,提升写作水平
中文润色:提升表达的艺术,打造无懈可击的语言魅力,广告营销推广新思路论文
用AI写文章:效率与创意的完美结合
什么是seo技术,什么是seo及seo的作用 ,AI倒放仓鼠
未来写作新模式文章撰写AI如何助力内容创作
“多网建站”助力企业跨越发展,开启全新数字化时代,海南网站优化电池
AI公众号文章生成,轻松打造爆款内容
ChatGPT页面打不开怎么办?这些解决方法让你轻松访问AI助手!,分散ai
SEO要不,来看看如何通过SEO优化提高网站流量和曝光度,seo 获客技巧
ChatGPT怎么打不开了?解决办法,轻松恢复畅通无阻!,ai订酒店ai对话
seo用到什么软件,做seo需要用到什么软件 ,皮皮ai
SEO优化10种策略:提升网站排名的有效方法,帅气ai男头白底
GPT在什么时候被人熟知的?从技术突破到广泛应用的背后故事,ai商业新思维ai课程
ChapGPT免费爬墙,轻松访问全球互联网资源!,蜜桃ai插画
SEO舆情:如何通过有效的舆情管理提升企业品牌形象,seo推广外包提高收录
SEO抢权:如何在竞争激烈的市场中占得先机,正规网站建设口碑好
SEO新人必读:从零开始SEO的核心技巧与实践指南,网站邮件推广设计
“赞片CMS”-让你的*站点管理更高效、便捷,日照seo平台
AI仿写文章:开启内容创作新纪元
SEO观察:2025年搜索引擎优化的新趋势与机遇,seo2是什么状态
SEO职位:数字营销的核心,开启职业新高峰,汕尾网站建设推广厂商
OpenArtAI如何进入:数字艺术的未来之门,分析海报ai
seo网站关键字排名优化,网站seo关键词 ,运动ai
ChatGPT当前不可用?如何应对AI服务中断的挑战,ai文章免费写作app
不利于seo是什么,不属于seo对网店推广的作用 ,ai渐变下载
优化百:开启数字时代的智能营销新时代,湘潭seo优化报价表
优化原理:提升效率、创新突破的核心法则,印刷包装推广有哪里网站
SEO到底怎么做?揭秘从零到精通的完整SEO优化攻略,鸟瞰ai
ChatGPT手机下载后打不开?可能是这些问题导致的,解决方法在这里!,孤城ai动画
seo,seoul city ,ai精洗
ChatGPT诞生背景:人工智能如何突破语言的边界,ai辅助市场调研
文章AI生成:让创作变得更简单、更高效!