(50)Wangdao.com第七天_JavaScript 发展与简介
一个完整的JavaScript 应该由以下三部分组成:
- ECMAScript
- DOM,全称Browser Object Model,即浏览器对象模型,主要处理浏览器窗口和框架
- BOM,全称Document Object Model,即文档对象模型,是 HTML和XML的应用程序接口(API),遵循W3C 的标准,所有浏览器公共遵守的标准
   JavaScript 是通过访问 BOM(Browser Object Model)对象来访问、控制、修改客户端(浏览器),
由于 BOM 的 window 包含了 document,window 对象的属性和方法是直接可以使用而且被感知的,
因此可以直接使用 window 对象的 document 属性,通过 document 属性就可以访问、检索、修改 XHTML 文档内容与结构。
因为 document 对象又是 DOM(Document Object Model)模型的根节点。
可以说,BOM 包含了 DOM (对象),浏览器提供出来给予访问的是 BOM 对象,从 BOM 对象再访问到 DOM 对象,从而 js 可以操作浏览器以及浏览器读取到的文档。
作者:昊晗远昂
出处: http://www.cnblogs.com/splendid/
转载请注明出处和原文链接
JavaScript 发展
- 诞生于1995年,由 NetScape 网景公司推出,主要用于处理网页中的前端验证, 在发布前准备叫 livescript 。
- 1995年,Netscape 公司雇佣了程序员 Brendan Eich 开发这种网页脚本语言。 
Brendan Eich 有很强的函数式编程背景,希望以 Scheme 语言(函数式语言鼻祖 LISP 语言的一种方言)为蓝本,实现这种新语言。
1995年5月,Brendan Eich 只用了10天,就设计完成了这种语言的第一版。它是一个大杂烩,语法有多个来源。
- 基本语法:借鉴 C 语言和 Java 语言。
- 数据结构:借鉴 Java 语言,包括将值分成原始值和对象两大类。
- 函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一等公民,并引入闭包。
- 原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)。
- 正则表达式:借鉴 Perl 语言。
- 字符串和数组处理:借鉴 Python 语言。
- 1996年,微软公司在其 IE3 中引入了自己对 JavaScript 的实现,JScript 。
- 1997年,网景公司无奈将 JavaScript 捐献给了欧洲计算机制造商协会 ECMA,1998年,ECMAScript 第2版登场。。。DOMLevel 1 的制定。。。新型语言 DHTML 登场。
ECMAScript 第1版登场
ECMAScript 作为一个标准存在,只有文档没有实现,交给各个厂商去实现。
上面这个原因,才有了现在的 FireFox 的 SpiderMonKey 引擎,IE 的 JScript,Chrome 的 V8 引擎是整个JS最快的引擎... ...
网景公司也卖了,变成了现在的 FireFox 。
- 1999年,ECMAScript 第 3 版登场。
- 2000年,DOMLevel 2 的制定。
- 2002年,ISO/IEC 16262:2002 确立。
- DOMLevel 3 的制定。
- 2005年,新型语言 AJAX 登场。
- 2009年,ECMAScript 第 5 版登场。。。新型语言 HTML5 登场。
- 2015年,ECMAScript 第 5 版登场。
- js 如今可以干什么?
- 验证表单
- 网页动态效果
- 服务器端开发 node.js
- 开发有限
- 客户端与服务器端的交互
- javascript
- java 是一门编译型语言,需要经过编译器编译成计算机认识的二进制,然后再执行。
- js 是一门解释型语言,不需要编译,由浏览器作为解释器,直接一条一条执行。
- js 是一种小型的,简单的,动态语言,变量可以保存任何类型的数据,性能上相较于静态语言要差一点,但是由于JavaScript中应用的JIT技术,JS可能是运行速度最快的动态语言。
- js 可以模拟类的概念,但不是面向对象语言。
- 函数是一种独立的数据类型,采用基于原型对象prototype的继承链。比java更自由。
- 编程风格是,函数式编程和面向对象编程的一种混合体。
- ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。
- ECMAScript 只用来标准化 JavaScript 这种语言的基本语法结构,与部署环境相关的标准都由其他标准规定
比如 DOM 的标准就是由 W3C组织(World Wide Web Consortium)制定的。
- 2008年,V8 编译器诞生
这是 Google 公司为 Chrome 浏览器而开发的,它的特点是让 JavaScript 的运行变得非常快。
它提高了 JavaScript 的性能,推动了语法的改进和标准化,改变外界对 JavaScript 的不佳印象。
同时,V8 是开源的,任何人想要一种快速的嵌入式脚本语言,都可以采用 V8,这拓展了 JavaScript 的应用领域。
- 2009年,Node.js 项目诞生,创始人为 Ryan Dahl
它标志着 JavaScript 可以用于服务器端编程,从此网站的前端和后端可以使用同一种语言开发。
并且,Node.js 可以承受很大的并发流量,使得开发某些互联网大规模的实时应用变得容易。
- 2013年5月,Facebook 发布 UI 框架库 React,引入了新的 JSX 语法,使得 UI 层可以用组件开发,同时引入了网页应用是状态机的概念。
- 2015年4月,Angular 框架宣布,2.0 版将基于微软公司的 TypeScript 语言开发,这等于为 JavaScript 语言引入了强类型。
- 2015年6月,Mozilla 在 asm.js 的基础上发布 WebAssembly 项目
这是一种 JavaScript 引擎的中间码格式,全部都是二进制,类似于 Java 的字节码
有利于移动设备加载 JavaScript 脚本,执行速度提高了 20+ 倍。这意味着将来的软件,会发布 JavaScript 二进制包。
- 2017年11月,所有主流浏览器全部支持 WebAssembly
这意味着任何语言都可以编译成 JavaScript,在浏览器运行。
(50)Wangdao.com第七天_JavaScript 发展与简介的更多相关文章
- (51)Wangdao.com第七天_JavaScript 编写位置及输出语句
		JavaScript 编写位置 编写在html内部标签的属性中 不推荐使用,因为结构和行为耦合,不便于维护 主要有 <button onclick="alert('点我干哈!');& ... 
- (53)Wangdao.com第七天_JavaScript 强制类型转换
		其他进制的数字 二进制 以 0b 开头的 Number 八进制 以 0 开头的 Number 十六进制 以 0x 开头的 Number 注意:无论是多少进制的数字,输出都是十进制 强 ... 
- (54)Wangdao.com第七天_JavaScript 运算符
		JavaScript 运算符,也叫操作符 对一个或者多个值进行运算,都是会返回结果的. 比如: typeof 返回一个值的类型,返回值类型是字符串. 隐式类型转换: 任意值 = 任意值 + &q ... 
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
		{Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) Django基础七之 ... 
- 50种编程语言,一句 “Hello, World”!展现编程语言七十年发展!
		mod confinment { use std::os::raw::{c_char}; extern "C" { pub fn puts(txt: *const c_char); ... 
- (52)Wangdao.com第七天_字面量/变量_标识符_数据类型_数据的存储
		JavaScript 字面量 和 变量 字面量:就是那些不可变的值,如1,2,100,2000,Infinity,NaN 变量: 变量,代表的当前随机分配的内存地址. 变量的值,是可变的,可以用来保存 ... 
- (70)Wangdao.com第十一天_JavaScript 日期对象 Date
		日期对象 Date 表示一个时间 Date 对象是 JavaScript 原生的时间库 它以1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒) 时间零点( ... 
- (83)Wangdao.com第十七天_JavaScript 定时器
		JavaScript 提供定时执行代码的功能,叫做 定时器(timer). 主要由 setTimeout() 和 setInterval() 这两个函数来完成.它们向任务队列添加定时任务 setTim ... 
- (57)Wangdao.com第九天_JavaScript 对象的简介及分类
		对象 引用数据类型. 对象是一种复合的数据类型,可以存储多个不同类型的变量. 以后我们看到的,只要不是String.Number.Boolean.Null.Undefined,那么就一定是 Objec ... 
随机推荐
- MongoDB3.6 一键化自动部署方案
			1.系统基础配置 下面的命令默认都使用root用户进行操作,操作系统为Centos7,mongodb3.6.x以上版本 1.1 修改系统配置文件/etc/security/limits.conf和/e ... 
- Ubuntu操作用户账户
			Git Gerrit $是普通管员,#是系统管理员,在Ubuntu下,root用户默认是没有密码的,因此也就无法使用(据说是为了安全).想用root的话,得给root用户设置一个密码: sudo pa ... 
- JAVA传递带有空格的参数
			String s="b2 + b1"; Process child = Runtime.getRuntime().exec("C:\\eclipse-workspace\ ... 
- About the Importance of Aim in Life
			Have an aim in life, or your energies will all be wasted. ---R. Peters 人生应该树立目标,否则你的精力会白白浪费. ---彼得 ... 
- JS中小数相加相减时出现很长的小数点的解决方式
			1.问题: 平时写的代码中会出现这种情况,parseFloat(11.3-10.1) 运行的结果依然是1.200000000000001 代码示例: var arr = [0.0111,11.002, ... 
- pythonのdjango
			Django(醤糕) 是基于MTV的框架 安装: pip3 install django 重要性:相当于出门带不带腿 创建工程 django-admin startproject [工程名称] 工程目 ... 
- 机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕    http://www.ai-start.com/
			机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 GNU Octave 开源 MatLab http://www.ai-start.com/ https://zhuanlan.zhihu ... 
- 搬运,B站up主『凉风有性胖次君』日日日日日日日日日日在校园
			这个视频超有毒,简直丧心病狂,我竟无言以对,凉风是有多大的耐性,搜集了这么多元素,哈哈哈~~~赶紧搬运,怕哪天B站都给封了 也就是说世界本来喜欢的是言叶,但是言叶爱上了一直在电车上暗恋她的诚哥,于是世 ... 
- yum安装软件报错Segmentation fault处理
			yum安装软件报错Segmentation fault处理 在使用yum 更新软件时提示:Segmentation fault 中文错误提示: 段错误 [root@CMS-BAK:/usr/local ... 
- 【原创】大叔经验分享(43)logstash设置jdbc_default_timezone后报错
			logstash6.6.0-6.6.2版本使用jdbc input plugin时如果设置了jdbc_default_timezone,会报错: { 2012 rufus-scheduler inte ... 
