name: zlevai date: 2020-07-20 title: JavaScript基本概念
❝最近因在面试中,被迎面而来的「暴击+++」,发现自己基础很薄弱。
「痛定思痛」,拿着红宝书准备啃2个月。
「红宝书镇楼!!!」
❞
JavaScript基本概念
❝「javascript诞生于1995年」,当时的「主要目的是 处理当前服务器语言负责的一些验证操作」。
而「目前」,已经「不仅仅是做表单验证」操作了,而是「具备了和浏览器窗口及其内容等几乎所有方面的交互」
❞
关键在于弄清楚JavaScript的本质、历史和局限性
JavaScript的本质
- 「1995年2月」Netscape公司的「布兰登·艾奇」开发的liveScript,Netscape公司和Sun公司建立了一个开发联盟,在Netscape navigator2 正式发布前,Netscape公司为了搭上媒体热炒的Java的顺风车,临时把liveScript改名为JavaScript.
- 「1996年8月微软进场」,促使JavaScript开发向前迈进一大步。
- 「1997年,以JavaScript 1.1为蓝本的建议被提交给欧洲计算机制造协会ECMA」,进过数月的努力完成了ECMA-262 定义一种名为「ECMAScript」(发音 ek-ma-script)的新脚本语言的标准。
- 「1998年,ISO/IEC组织(国标标准化组织和国际电工委员会)也采用了ECMAScript作为标准」,自此以后,浏览器开发商就致力于将ECMAScript作为各自JavaScript实现的基础。
JavaScript实现
❝JavaScript和ECMAScript通常被用来表达相同的含义,但JavaScript要比ECMAScript中规定的要多。
一个完成的JavaScript由以下三个不同的部分组成:
❞
- 「核心 ECMAScript」:提供核心语言功能
- 「文档对象模型 DOM」 :提供访问和操作网页内容的方式和接口
- 「浏览器对象模型 BOM」:提供和浏览器交互多大的方法和接口
1.ECMAScript的组成
❝ECMAScript和web浏览器没有依赖关系;
常见的web浏览器只是ECMAScript实现可能的宿主环境之一,宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言和环境之间对接交互。
其它宿主环境,如 node、Adobe Flash
「ECMAScript 规定了以下的组成部分:」
- 「语法」
- 「类型」
- 「语句」
- 「关键字」
- 「保留字」
- 「操作符」
- 「对象」
「ECMAScript的版本」
❞
- ECMAScript® 2015,第六个版本,简称ES2015。
- ECMAScript® 2016,第七个版本,简称ES2016。
- ECMAScript® 2017,第八个版本,简称ES2017。
- ECMAScript® 2018,第九个版本,简称ES2018。
2.文档对象模型DOM
❝是针对XML但经过扩展用于HTML的应用程序编程接口。
DOM把整个页面映射为一个多层节点结构。
HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。
开发人员可以借助DOM的API 轻松的删除,添加,替换或者修改任何节点。
❞
为什么要使用DOM呢?
- 微软和网景针对分别支持不同形式的DHTML基础上,有了分歧,只写一个HTML就能够运行在任何浏览器中的时代结束了。
- 要想保持web跨平台的天性,必须要额外多做一些标准性的工作。此时,负责web通信标准的W3C 万维网联盟开始着手规划DOM。
DOM的级别
❝「DOM1」 1998年10月 成为W3C的推荐标准;主要由两块组成:
- DOM Core : 规定是如何映射基于XML的文档结构,以便简化对文档中任意部分的访问和操作。
- DOM HTML:作为DOM核心的扩展,添加了针对HTML的对象和方法
「DOM2」
扩充了鼠标和用户界面事件。范围。遍历,通过对象接口新增了对CSS的支持。
- 「DOM视图」:定义了跟踪不同文档视图的接口
- 「DOM 事件」:定义了事件和事件处理的接口
- 「DOM 样式」:定义基于CSS为元素应用样式的接口
- 「DOM 遍历和范围」:定义了遍历和操作文档树的接口
「DOM3」
引入了统一方式 加载和保存文档的方法,新增了验证文档的方法
❞
3.浏览器对象模型BOM
❝使用「BOM 可以控制浏览器显示的页面以外的部分」。
❞
- 打开新的标签页
- 移动、缩放、关闭浏览器窗口功能
- 提供浏览器详细信息的「navigator」 对象
- 提供浏览器加载页面的详细信息的 「location」 对象
- 提供用户显示器分辨率详细信息的 「screen」 对象
- 对cookies的支持
- 像XMLHttpRequset 和IE的ActiveXObject对象
4.JavaScript的局限性
❝❞
- JavaScript属于客户端脚本,所以JavaScript必须「要在解析器下执行」。而通常这个解析器都是由浏览器来提供,因此JavaScript通常只有在浏览器中使用,才能完成一些与网页或浏览器操作相关的功能。
- JavaScript虽然可以在网页上实现动态效果,但是JavaScript却「不具备任何图形处理能力」。如果要处理图片,就必须使用第三方控件。
- JavaScript「本身不包含联网技术」,也「不能读取数据库中的数据」,「甚至也不能操作任何其他文件」(引用文件除外)。如果要JavaScript来实现这些功能,就必须使用其他控件或组件。
- 「出于安全方面」的考虑,大多数据浏览器「不允许JavaScript跨域操作」。JavaScript只能在当前域中有效。
小结
❝JavaScript是一种专门「和网页交互而设计的脚本语言」,有下面三个不同的部分组成:
❞
- 核心 ECMAScript:提供核心语言功能
- 文档对象模型 DOM :提供访问和操作网页内容的方式和接口
- 浏览器对象模型 BOM:提供和浏览器交互多大的方法和接口
本文使用 mdnice 排版