JavaScript的诞生

51 阅读2分钟

《JavaScript的诞生》

1.JavaScript的历史

布兰登艾克仅花了十天把JavaScript原型设计出来了,命名为 Mocha

1995年9月在Netscape Navigator 2.0的Beta版中改名为LiveScript,同年12月,Netscape Navigator 2.0 Beta 3中部署时被重命JavaScript

image.png

Javascript语言实际上是两种语言风格的混合产物----(简化的)函数式编程+(简化的)面向对象编程。

2.JavaScript的10个设计缺陷

2.1 不适合开发大型程序

Javascript没有名称空间(namespace),很难模块化;没有如何将代码分布在多个文件的规范;允许同名函数的重复定义,后面的定义可以覆盖前面的定义,很不利于模块化加载

2.2 非常小的标准库

Javascript提供的标准函数库非常小,只能完成一些基本操作,很多功能都不具备。

2.3 null和undefined

null属于对象(object)的一种,意思是该对象为空;undefined则是一种数据类型,表示未定义。

2.4 全局变量难以控制

Javascript的全局变量,在所有模块中都是可见的;任何一个函数内部都可以生成全局变量,这大大加剧了程序的复杂性。

2.5 自动插入行尾分号

Javascript的所有语句,都必须以分号结尾。但是,如果你忘记加分号,解释器并不报错,而是为你自动加上分号。有时候,这会导致一些难以发现的错误。

2.6 加号运算符

+号作为运算符,有两个含义,可以表示数字与数字的和,也可以表示字符与字符的连接。

2.7 NaN

NaN是一种数字,表示超出了解释器的极限。它有一些很奇怪的特性:

2.8 数组和对象的区分

由于Javascript的数组也属于对象(object),所以要区分一个对象到底是不是数组,相当麻烦。

2.9 ==和===

==用来判断两个值是否相等。当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。因此,推荐任何时候都使用"==="(精确判断)比较符。

2.10 基本类型的包装对象

Javascript有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。