Chrome 浏览器
js 代码在浏览器中是如何被执行的呢?
1.在浏览器输入一个网站链接,会经过dns 域名解析转换成IP 地址,ip 地址一般是服务器地址;
2.进入服务器地址之后,服务器一般会返回index.html;
3.浏览器从index.html解析到的css 文件和 js 文件都会从服务器下载下来;
浏览器内核
浏览器内核会将 html、css、js 解析,渲染成网页
- Geoko:早期,现在很少了
- Trident:edge 之前使用,现在 edge 已经转向 Blink 了
- Webkit: 苹果开发,之前谷歌浏览器也在使用
- Blink:Webkit 的一个分支,谷歌开发,目前应用于谷歌浏览器、Edge、Opera
浏览器内核也会影响兼容性
实际上浏览器内核就是浏览器的排版引擎,也叫浏览器引擎、页面渲染引擎
浏览器渲染过程
在DOM 变成 DOM 树这个过程,html 解析的时候遇到 js 标签,应该怎么办呢?
会停止解析 html,而去加载和执行 js 代码;
那 js 代码由谁来执行呢?;
js 引擎
js 引擎
为什么需要 js 引擎呢?
js是一门高级编程语言;
高级编程语言都是需要转化成机器指令来执行的;
js 代码无论是交给浏览器和node执行,最后都是需要被cpu执行的;
但是cpu只认识自己的指令集,也就是机器指令;
所以需要js 引擎将js 代码转换成cpu 指令;
那有哪些常见的 js 引擎呢?
- spiderMonkey:第一款 js 引擎
- Chakra
- JavaScriptCore:webkit 中的 js 引擎
- v8:谷歌开发的强大 js 引擎,(c++编写)
- ...