作者回复:
第一个问题:
xmlhttprequest 可以直接走网络进程,不需要浏览器进程介入
第二个问题:
因为前进或者后退也需要执行当前页面脚本啊,比如要执行beforeunload事件,执行的时候页面没响应了,所以前进后退也就失效了
第三个问题:
你把f2注释了,当执行fn函数时,照样会预扫描f1,照样会产生闭包,只不过当fn执行结束之后,闭包的内容没有外部引用,那么下次垃圾回收直接把比闭包的内容回收掉
作者回复: 全局代码,或者函数 !
比如下载完一个js文件,先编译这个js文件,但是js文件内定义的函数是不会编译的。
等调用到该函数的时候,Javascript引擎才会去编译该函数!
作者回复: 是的
作者回复: 只要是同步脚本都会阻塞,这里我可能没说清楚。
我的表达的以上是同步脚本尽量小,尽量能内联。
其它的尽量采用异步脚本,如使用aysnc和defer。
作者回复: 你可以认为WebAssembly就是,WebAssembly经过TuboFan处理下就能执行了
作者回复: 是的
作者回复:
你可以把JavaScript的编译看成了部分:
第一部分从一段JavaScript代码编译到字节码,然后解释器解释执行字节码!
第二部分深度编译,将活跃的字节码编译成二进制,然后直接执行二进制。
无论哪个阶段都需要编译。
作者回复: 引入了字节码,就有弹性空间了,可以在内存和执行速度之间做调节。
相比之前的V8,将JS代码全部编译成字节码,这种模式就没有协商的空间了!
作者回复: 第一个:站点就是文章中连接的地址,你可以手动操作下,直观感受下ast!
第二个:vue react 移动端和PC都适用的,现在都是响应式开发了,同一套框架可以适应很多平台