布兰登·艾奇(Brendan Eich),用10天完成 JavaScript 设计。最初命名为 LiveScript,后来在与 Sun 合作之后将其改名为 JavaScript。
一、JavaScript是什么
JavaScript 因为互联网而生,紧跟着浏览器的出现而问世。
- JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思)
- 脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行
- 现在也可以基于 Node.js 技术进行服务器端编程
二、JavaScript的作用
表单动态校验(密码强度检测-- JS 产生最初的目的)
- 网页特效
- 服务端开发(Node.js)
- 桌面程序(Electron)
- App(Cordova)
- 控制硬件-物联网(Ruff)
- 游戏开发(cocos2d-js)
三、HTML/CSS/JS 的关系
HTML/CSS标记语言–描述类语言
- HTLM决定网页结构和内容
- CSS决定网页呈现给用户的样子
JS脚本语言–编程类语言
- 实现业务逻辑和页面控制
四、浏览器执行 JS
浏览器分成两部分:渲染引擎和 JS 引擎
渲染引擎 | 用来解析HTML与CSS,俗称内核,比如 chrome 浏览器的 blink ,老版本的 webkit |
---|---|
JS 引擎 | 也称为 JS 解释器。 用来读取网页中的JavaScript代码,对其处理后运行,比如 chrome 浏览器的 V8引擎。 |
浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。JS 引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以 JavaScript 语言归为脚本语言,会逐行解释执行。
五、JavaScript组成
完整的JavaScript实现包含以下几个部分:
- 核心(ECMAScript)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
六、ECMAScript
ECMAScript 是由ECMA 国际组织( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。
- ECMAScript,即 ECMA-262
- ECMAScript将这门语言作为一个基准来定义,以便在它之上再构建更稳健的脚本语言定义语言的基础
- 规定了语言的组成部分:语法、类型、语句、关键字、保留字、操作符、对象
- JavaScript与nodejs 都实现了ECMAScript
- ECMAScript只是对实现这个规范描述的所有方面的一门语言的称呼
七、DOM
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口(API)。通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)
DOM级别
DOM Level 1
- DOM Core:如何映射文档结构,简化对文档任意部分的访问操作
- DOM HTML:扩展前者,增加了特定于HTML的对象和方法
DOM Level 2
- 增加了鼠标和用户界面事件,范围,便利(迭代DOM节点的方法)
- 通过对象接口支持了css
DOM Level 3
- 增加了以统一的方式加载和保存文档
- 增加了验证文档方法
八、BOM
浏览器对象模型(Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
- 弹出浏览器窗口的能力
- 移动,缩放和关闭浏览器的能力
- navigator对象:提供浏览器的详尽信息
- location对象:提供浏览器加载页面的详尽信息
- screen对象:提供关于用户屏幕分辨率的详尽信息
- performance对象:提供浏览器内存占用,导航行为和时间统计的详尽信息
- 对cookie的支持
- 其他自定义对象:如 XHLHttpRepuest 和 IE 的 ActiveXObject