(1)学习笔记 —— JavaScript简介及历史

一、起源

• JavaScript诞生于1995年,它的出现主要是用于处理网页中的
前端验证。
• 所谓的前端验证,就是指检查用户输入的内容是否符合一定的
规则。
• 比如:用户名的长度,密码的长度,邮箱的格式等。

二、简史

• JavaScript是由网景公司发明,起初命名为LiveScript,后来由
于SUN公司的介入更名为了JavaScript。
• 1996年微软公司在其最新的IE3浏览器中引入了自己对
JavaScript的实现JScript。
• 于是在市面上存在两个版本的JavaScript,一个网景公司的
JavaScript和微软的JScript。
• 为了确保不同的浏览器上运行的JavaScript标准一致,所以几
个公司共同定制了JS的标准名命名为ECMAScript。

三、时间表

(1)学习笔记 —— JavaScript简介及历史

四、实现

• ECMAScript是一个标准,而这个标准需要由各个厂商去实现。
• 不同的浏览器厂商对该标准会有不同的实现。

(1)学习笔记 —— JavaScript简介及历史
我们已经知道ECMAScript是JavaScript标准,所以一般情况下
这两个词我们认为是一个意思。
• 但是实际上JavaScript的含义却要更大一些。
• 一个完整的JavaScript实现应该由以下三个部分构成:

(1)学习笔记 —— JavaScript简介及历史

五、学习内容

• 我们已经知道了一个完整的JavaScript实现包含了三个部分:
ECMAScript、DOM和BOM。
• 由此我们也知道了我们所要学习的内容就是这三部分。
– ECMAScript
– DOM
– BOM

六、特点

• JS的特点
– 解释型语言
– 类似于 C 和 Java 的语法结构
– 动态语言
– 基于原型的面向对象

七、解释型语言

• JavaScript是一门解释型语言,所谓解释型值语言不需要被编
译为机器码在执行,而是直接执行。
• 由于少了编译这一步骤,所以解释型语言开发起来尤为轻松,
但是解释型语言运行较慢也是它的劣势。
• 不过解释型语言中使用了JIT技术,使得运行速度得以改善。

八、类似于 C 和 Java 的语法结构

• JavaScript的语法结构与C和Java很像,向for、if、while等语
句和Java的基本上是一模一样的。
• 所以有过C和Java基础的同学学习起来会轻松很多。
• 不过JavaScript和与Java的关系也仅仅是看起来像而已。

九、动态语言

• JavaScript是一门动态语言,所谓的动态语言可以暂时理解为
在语言中的一切内容都是不确定的。比如一个变量,这一时刻
是个整型,下一时刻可能会变成字符串了。当然这个问题我们
以后再谈。
• 不过在补充一句动态语言相比静态语言性能上要差一些,不过
由于JavaScript中应用的JIT技术,所以JS可能是运行速度最快
的动态语言了。

十、基于原型的面向对象

• JavaScript是一门面向对象的语言。
• Java也是一门面向对象的语言,但是与Java不同JavaScript是
基于原型的面向对象。

十一、JIT(just in time)

JIT就是即时编译器,可以根据字节码的使用频率对常用的字节码生成本地机器指令(运行时),并且保存下来,以便于下次使用,感觉有点缓存的味道,目的是加快运行速度,减少JAVA不停的解释引起的速度慢问题

JIT与JavaScript

谷歌的V8 JavaScript引擎好像采用了JIT技术,不同于字节码,反正也可以从javascript语言生成机器码

为什么V8 JavaScript引擎这么快,这点参考自
http://www.xuanfengge.com/why-v8-so-fast.html