JavaScript 历史及缺陷

127 阅读2分钟

诞生

  • 发明时间:1995
  • 发明人:网景的布莱登 (Brendan Eich)
  • ECMAScript 是javaScript的纸面标准,而JavaScript是ECMAScript的现实实现。

1994年,网景发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。所以网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。布莱登用十多天写完了js,它在网景导航者浏览器上首次设计实现而成,然而开发时间过短,埋下了很多隐患。

JavaScript的设计缺陷

  1. 不适合开发大型程序

  2. 标准库函数很小,功能响相对局限

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

  4. 全局变量难以控制:Javascript的全局变量,在所有模块中都是可见的;任何一个函数内部都可以生成全局变量,这大大加剧了程序的复杂性。所以let的出现就改善了这一点

  5. 自动插入行尾分号

  6. 加号运算符可以表运算也可以表连接 7.NaN:表示超出了解释器的极限,没必要,没必要,不如直接报错 8.数组与对象的区分:因为数组也属于对象,所以区分不方便

    if ( arr &&typeof arr === 'object' &&typeof arr.length === 'number' &&!arr.propertyIsEnumerable('length')){ alert("arr is an array"); } 9.==/===

    "" == "0" // false 0 == "" // true 0 == "0" // true 0 == "0" // true false == "false" // false false == "0" // true false == undefined // false false == null // false null == undefined // true " \t\r\n" == 0 // true 10.基本类型的包装对象 Javascript有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。与基本数据类型对应的对象类型,作用很小,造成的混淆却很大。