诞生
- 发明时间:1995
- 发明人:网景的布莱登 (Brendan Eich)
- ECMAScript 是javaScript的纸面标准,而JavaScript是ECMAScript的现实实现。
1994年,网景发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。所以网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。布莱登用十多天写完了js,它在网景导航者浏览器上首次设计实现而成,然而开发时间过短,埋下了很多隐患。
JavaScript的设计缺陷
-
不适合开发大型程序
-
标准库函数很小,功能响相对局限
-
null和undefined的易混淆:null属于对象(object)的一种,意思是该对象为空;undefined则是一种数据类型,表示未定义。
-
全局变量难以控制:Javascript的全局变量,在所有模块中都是可见的;任何一个函数内部都可以生成全局变量,这大大加剧了程序的复杂性。所以let的出现就改善了这一点
-
自动插入行尾分号
-
加号运算符可以表运算也可以表连接 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有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。与基本数据类型对应的对象类型,作用很小,造成的混淆却很大。