本篇内容介绍了“JavaScript预编译和执行过程实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!javascript相对于其它语言来说是一种弱类型的语言,在其它如java语言中,程序的执行需要有编译的阶段,而在javascript中也有类似的“预编译阶段”(javascript的预编译是以代码块为范围,即每遇到一个代码块都会进行预编译>执行
),了解javascript引擎的执行机理,将有助于在写js代码过程中的思路总结。首先javascript是解释型语言,自然就是编译一行,执行一行。js运行过程分为三步:
1、语法分析
2、预编译
3、解释执行语法分析就是指js引擎去判断检查你的代码是否存在语法错误,解释执行更不用多说,自然就是执行你的代码,然而重中之重的是预编译,预编译简单理解就是在内存中开辟一些空间,存放一些变量与函数 。理解预编译首先要明白函数声明和变量赋值:javascript中的两种声明方式,var和function,前者声明的是变量,后者声明的是方法。在预编译中,javascript对这两种声明做出了两种处理方案:以上代码块中,a、c为变量赋值,b为函数声明,当执行以上的代码时,首先会进入预编译阶段,对与变量赋免费云主机域名值a、c会在内存中开辟一块内存空间并指向变量名,且赋值为undefined1. 创建AO对象(Active Object)
2. 查找函数形参及函数内变量声明,形参名及变量名作为AO对象的属性,值为undefined
3. 实参形参相统一,实参值赋给形参
4. 查找函数声明,函数名作为AO对象的属性,值为函数引用1)、创建AO对象2)、查找函数形参及函数内变量声明,形参名及变量名作为AO对象的属性,值为undefined3)、实参形参相统一,实参值赋给形参4)、查找函数声明,函数名作为AO对象的属性,值为函数引用变量、函数声明后代码顺序当执行到a=123之前时: 此时 console.log(a)打印的值为: function a() {}
当执行到a=123时: 此时 console.log(a)打印的值为: 123 123
当执行到b = function () {}时:此时 console.log(b)打印的值为:function () {}
console.log(d)打印的值为:function d() {}
浏览器执行结果:1)、创建AO对象2)、查找函数形参及函数内变量声明,形参名及变量名作为AO对象的属性,值为undefined3)、实参形参相统一,实参值赋给形参 4)、查找函数声明,函数名作为AO对象的属性,值为函数引用 变量、函数声明后代码顺序当执行到function d() {}之前时: 此时 console.log(a)打印的值为: 1
当执行到b=2之前时: 此时 console.log(b)打印的值为: 2 2
浏览器执行结果:1)、创建AO对象2)、查找函数形参及函数内变量声明,形参名及变量名作为AO对象的属性,值为undefined 3)、实参形参相统一,实参值赋给形参 4)、查找函数声明,函数名作为AO对象的属性,值为函数引用变量、函数声明后代码顺序当执行到function a() {}时:
此时 console.log(a)打印的值为: function a() {}
console.log(b)打印的值为: undefined
当执行到 b=234时: 此时 console.log(b)打印的值为: 234
当执行到 a=123时: 此时 console.log(a)打印的值为: 123
当执行到 b=456 时当执行到 b = function () {}时:
此时 console.log(a)打印的值为: 123
console.log(b)打印的值为: function () {}
浏览器执行结果:“JavaScript预编译和执行过程实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!
本文小编为大家详细介绍“vue如何实现计算属性”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue如何实现计算属性”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是计算属性模板内的表达式非常便利,但是设计它们的初衷是用于简单运算…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。