一、历史
JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
二、概述
1. 组成部分
- ECMAScript,描述了该语言的语法和基本对象。
- 文档对象模型(DOM),描述处理网页内容的方法和接口。
- 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。
2. 特点
- 是一种解释性脚本语言(代码不进行预编译)。
- 主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
- 可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
- 跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
- JavaScript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。JavaScript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
- 可以实现web页面的人机交互。
三、 Javascript的设计缺陷
1. 原因
- 设计阶段过于仓促
- 没有先例
- 过早的标准化
2. 缺陷
- 不适合开发大型程序
- 非常小的标准库
- null和undefined,两者含义不同,容易混淆,实践中,null几乎没有用
- 全局变量难以控制
- 自动插入行尾分号
- 加号运算符
- NaN
NaN是一种数字,表示超出了解释器的极限。它有一些很奇怪的特性:与其设计NaN,不如解释器直接报错,反而有利于简化程序。
NaN === NaN; //false
NaN !== NaN; //true
alert( 1 + NaN ); // NaN
- 数组和对象的区分
- == 和 ===
==用来判断两个值是否相等。当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。
- 基本类型的包装对象
Javascript有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。与基本数据类型对应的对象类型,作用很小,造成的混淆却很大。
以上内容来自JS历史
以上内容来自JS10个设计缺陷