浏览器简介
浏览器历史
- 1990微软收购蒂姆 伯纳斯 李 使用超文本分享资讯,第一个真正意义上的浏览器 word wide web
- 1993年,伊利诺大学,马克 安德森 开发了MOSIAC浏览器,可以显示图片
- 1994年,马克 安德森 和 吉姆 克拉克 一起成立了MOSIAC communication corporation 公司,之后伊利诺大学把MOSIAC商标卖给了spy glass 公司,所以改名为Netscape communication corporation (网景),开发了netscape navigator (导航者浏览器)
- 1996年,微软收购spy glass ,并发布了IE浏览器1.0,同年发布3.0版本,第一次出现了Jscript脚本,同年网景公司开发出了livescript,这就是JavaScript的前身,只能在netscape navigator 上面运行
- 1996年,Java爆火,网景公司和sun公司合作,把livescript为JavaScript
- 2001年,微软发布IE6和Xp系统,这一年也出现了JS引擎
- 2003年,Mozilla公司在netscape navigator 开源的时候,发布了自己的Firefox浏览器
- 2008年,谷歌研究progressive web app(渐进式web APP) ,发布了Chrome浏览器还有V8引擎,为什么V8是最快的JS引擎:
- 直接翻译机器码
- 独立于浏览器运行
2009年,oracle(甲骨文)收购了sun公司,JS所有权给了甲骨文,所以Java和JavaScrip某种意义上有关系的
js简介
- 语言类型: 编译型语言 → 要素:变量、数据结构、函数、运算能力
- 源码→编译器→机器语言→可执行文件
- 解释型语言 源码→解释一行执行一行
- JS在声明的时候,不声明数据类型,而是根据值来判断数据类型,这种语言就是弱类型语言
- 动态语言→脚本语言→解释型语言→弱类型语言
- 静态语言→编译型语言→强类型语言
- JS引擎是单线程的,但是可以模拟多线程→轮转时间片: 短时间之内轮流执行两个或多个任务的片段
- 过程:
假设有两个任务
- 切分任务1和任务2.
- 随机排列这些任务片段,组成队列
- 按照这个队列顺序将任务片段送进JS进程
JS线程执行
问题: 这个和异步有什么关系,为什么JS不直接是多线程,为什么要模拟多线程,哪里会用到,JS进程和线程和轮转时间片有何关系