深入JavaScript Day01 - 高级语言、浏览器内核、
2022-01-10 本文已影响0人
望穿秋水小作坊
一、认识JavaScript
1、TypeScript最近几年发展火爆,会取代JavaScript吗?
- 【不会取代】
- TypeScript只是给JavaScript带了类型思维,让我们编码阶段更加安全
- TypeScript官网有这么一句话【源于JavaScript,归于JavaScript】
- 如果有一天JavaScript官方支持类型思维后,TypeScript更有可能退出历史舞台
![](https://img.haomeiwen.com/i13946897/b7010d4920ef740e.png)
2、代码最终都要交给CPU执行吗?CPU只认识什么指令?有什么缺点?
- 对的,代码最终都要交给CPU进行执行。
- CPU执行【二进制指令】,比如【10101010】
- 【缺点】但是存在问题【10101010】,是代表【读】还是【写】还是【其他功能】?很不利于人类记忆
3、汇编语言和二进制指令有什么关系?有什么缺点?
- 汇编语言实际上就是二进制指令的【助记符】,它只是二进制指令的映射。
LD:10101010
id:10101111
R:11111010
- 这样上述指令就可以表达为 LD id R,大大增强了代码的可读性。
-【缺点】CPU只能执行三地址表达式,和人类的思维方式相差甚远。
4、高级语言的优缺点?
- 【优点】更加符合人类的思维方式和阅读习惯
- 【缺点】计算机并不能直接执行高级语言,需要把高级语言转化成【汇编语言/机器指令】才能执行,这个过程也叫做编译
5、JavaScript是高级语言吗?JavaScript需要转化成汇编指令吗?
- JavaScript是高级语言
-
基本上所有的高级语言,都会转成机器指令。而机器指令和汇编指令是一一对应的,所以这个问题意义不大。
image.png
二、JavaScript 和 浏览器
1、从输入域名开始,描述下JavaScript代码是如何被浏览器拿到的?
- ①域名通过DNS服务器解析,获得真实的IP地址
- ②浏览器访问IP,拿到静态HTML文件
- ③浏览器解析HTML,下载其中的CSS和JavaScript代码
- ④借助JavaScript引擎,解析执行JavaScript代码
2、什么是浏览器内核?最常见的两个内核是哪两个?
- 浏览器内核简单来说,就是处理HTML+CSS+JavaScript代码,最终生成网页的中间人。
- 最常见的两个内核:【Webkit】、【Blink】
![](https://img.haomeiwen.com/i13946897/5c09fdf41991e979.png)
4、浏览器拿到HTML后,在解析HTML的过程中,如果遇到img资源会怎么处理?如果遇到css资源呢?如果遇到script资源呢?
- 【img资源】属于非阻塞资源,浏览器会请求这些资源并且继续解析。
- 【css资源】也属于非阻塞资源,解析也可以继续进行。
- 【普通script资源】会阻塞渲染并停止HTML的解析,尽管浏览器的预加载扫描器加速了这个过程,但过多的脚本仍然是一个重要的瓶颈。
5、描述浏览器拿到HTML之后,渲染过程(从HTML、CSS、JavaScript最终渲染到屏幕的过程)?
![](https://img.haomeiwen.com/i13946897/39ffc0144dbd17c5.png)
三、掌握 JavaScript引擎相关概念
1、为什么需要JavaScript引擎?常见的JavaScript引擎有哪些?
- 【为什么】因为JavaScript是高级编程语言,CPU并不认识,需要由JavaScript引擎进行翻译。
- 【常见引擎】JavaScriptCore、V8
![](https://img.haomeiwen.com/i13946897/dc849609bcbe59e8.png)
2、浏览器内核和JS引擎之间是什么关系?
- 这里我们先以Webkit内核为例,Webkit主要由两部分组成的:
- 【WebCore】:负责HTML解析、布局、渲染等等相关的工作;
- 【JavaScriptCore】:解析、执行JavaScript代码;
![](https://img.haomeiwen.com/i13946897/73485f14e5578de2.png)
3、V8引擎本身是用什么语言编写的?V8引擎的原理(至少能说出源码、语法书、字节码、机器指令几个环节)?
- V8是用C++编写的Google开源高性能JavaScript引擎。
![](https://img.haomeiwen.com/i13946897/07067b5546f35f78.png)
4、V8的一些其他细节(用到再了解)
![](https://img.haomeiwen.com/i13946897/268913868b8e1a1b.png)
![](https://img.haomeiwen.com/i13946897/f21938d772d30edf.png)
![](https://img.haomeiwen.com/i13946897/45b42c1181596b15.png)