Google V8 底层机制和原理
文章平均质量分 70
行云&流水
天行健,君子以自强不息。
地势坤,君子以厚德载物。
展开
-
异步编程演变与发布订阅
在观察者模式里面就是被观察者 Subject,它只需维护一套观察者 Observer 的集合,将有关状态的任何变更自动通知给它们 watcher 观察者 这个设计是松耦合的。发布订阅解决回调问题。原创 2023-03-31 21:54:48 · 86 阅读 · 0 评论 -
V8实现闭包
闭包指的是一个函数,且这个函数的绑定了词法环境。闭包可以让你在内层函数中访问外层函数作用域,在js中我们每创建一个函数,闭包就会在函数被创建的时候创建。let name = '我的' function inner() {console . log(` 欢迎来到 ${ name } 的博客 `) } }${let name = '我的' function inner() {console . log(` 欢迎来到 ${ name } 的博客 `) } }原创 2023-03-30 20:29:57 · 189 阅读 · 0 评论 -
V8实现对象继承
在这类语言中,总是先有类,再从类去实例化一个对象。类与类之间又可能会形成继承、组合等关系。继承简单来说就是,一个对象可以返回另一个对象的属性和方法。侦测一个数组数据的变化,变异方法,改变数组自身的值。所有的对象类型都有__proto__这个字段,提倡使用一个关注分类和类之间关系开发模型。原创 2023-03-28 19:47:03 · 99 阅读 · 0 评论 -
类型系统与V8拆箱装箱机制
你想把这个变量当做什么类型来用,就当做什么类型来用,语言的解析器会自动(隐式)转换。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。③当你定义一个变量是某个类型,如果不经过代码显式转换(强制转化)过,它就永远都是这个类型,如果把它当做其他类型来用,就会报错。先检测该对象中是否存在 valueOf 方法,如果有并返回了原始类型,那么就使用该值进行强制类型转换;①如果你定义了一个整型变量 a,那么程序根本不可能将 a 当作字符串类型处理。原创 2023-03-26 21:07:13 · 321 阅读 · 0 评论 -
V8是如何执行一行代码
机器语言作为一种编程语言, 灵活性较差可阅读性也很差,为了减轻机器语言带给软件工程师的不适应,人们对机器语言进行了升级和改进:用一些容易理解和记忆的字母,单词来代替一个特定的指令。V8 采用了一种权衡策略,在启动过程中采用了解释执行的策略,但是如果某段代码的执行频率超过一个值,那么 V8 就会采用优化编译器将其编译成执行效率更加高效的机器代码。**编译型语言:**编译型语言在执行之前要先经过编译过程,编译成为一个可执行的机器语言的文件,比如exe。因为翻译只做一遍,以后都不需要翻译,所以执行效率高。原创 2023-03-21 22:13:56 · 122 阅读 · 0 评论