欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript 基本常识

程序员文章站 2022-03-26 22:35:48
JavaScript 基本常识:浏览器内核、浏览器发展历史、ECMAScript 介绍、JavaScript 线程等 ......

javascript 基本常识

javascript 基本常识:浏览器内核、浏览器发展历史、ecmascript 介绍、javascript 线程等

浏览器内核

五大主流浏览器 内核
ie trident
chrome webkit/blink
safari webkit
firefox geoko
opera peresto

浏览器历史

  1. 1990,蒂姆 伯纳斯 李,第一个使用超文本分享资讯的人,开发出了最早的浏览器 word wide web,移植到 c 语言平台后称为 libwww,后改名为 nexus
  2. 1993,美国伊利诺大学的国家超级计算应用中心的成员马克安德森开发出了 mosiac 浏览器,可以显示图片,真正意义上的的图形化浏览器
  3. 1994,马克安德森与 sgi(硅图)公司的吉姆克拉克成立了 mosiac communication corporation。但是 mosiac 商标权在伊利诺大学,后被转让给 spy glass 公司。马克安德森只能将公司改名为 netscape communication corporation,开发出了 netscape navigator,即网景浏览器
  4. 1996
    • 微软收购 spy glass,在 mosiac 基础上开发出 ie(inernet exploror)
    • 1996,微软发布 ie3 及脚本语言 jscript
    • 1996,网景公司的 brendan eich 在 netscape navigator 基础上开发出 livescript
    • 1996,sun 公司的 java 语言兴起,网景 livescript 不温不火,于是网景与 sun 公司合作,推出 javascript,促进了 javascript 的发展
  5. 2001,ie6 与 xp 系统诞生,搭载了 javascript 引擎
  6. 2003,mozilla 公司根据 netscape navigator 开放的源码翻版出了 firefox,
  7. 2008,google 基于 webkit/blink 内核,推出了 chrome 浏览器,搭载了 javascript v8 引擎,v8 引擎可以直接翻译机器码,可以独立于浏览器运行,是一场空前的技术革命
  8. 2009,oracle 收购 sun 公司,获得了 javascript 语言的版权

ecmascript

  1. ecma,european computer manufactures association,欧洲计算机制造联合会,评估、开发、认可电信、计算机行业的标准和规范
  2. ecma-262,脚本语言的规范
  3. ecmascript,规范化脚本语言,如 javascript,微软的 jscript 都遵从此规范

javascript 语言

  1. 高级和低级语言

    高级语言:java、c/c++、python 等

    低级语言:汇编语言、机器语言

  2. 解释型和编译型语言

    解释性语言

    • 不需要根据不同的系统平台进行移植
    • 源码 -> 解释器 -> 解释执行

    编译性语言

    • 跨平台性较差,性能较好

    • 编译:源码 -> 编译器 -> 机器语言 -> 可执行文件
    • 如 c++ :.cpp 源码 -> 编译器 -> .s 汇编 -> 汇编器 -> .obj 目标代码 -> 链接器 -> 可执行文件

  3. 脚本语言

    • 脚本语言是解释型语言,或者动态语言

    • 由解释器(脚本引擎)解释执行
    • 如:javascript 浏览器脚本语言,php 服务端脚本语言

javascript 三大块

  1. ecmascript
    • 规范化脚本语言
    • 规定了语法、变量、保留字、数据类型、运算、对象、继承、函数等内容
  2. bom
    • 浏览器对象模型
    • 没有相同的规范,需要写兼容性,与浏览器本身内容相关,如滚动条、键盘鼠标事件等
  3. dom
    • 文档对象模型
    • 遵从一套 w3c 的规范,与文档内元素的操作相关

javascript 线程

  1. 单线程

    js 引擎是单线程的,但是可以模拟多线程

  2. 时间片轮转

    短时间内执行多个任务片段

  3. 模拟过程

    多个任务 -> 切分成多个任务片段 -> 随机排列成队列 -> 按顺序将片段送人 js 进程中执行