JavaScript 的诞生
1995年,Brendan Eich 用10天开发了JS
Breadan Eich的设计思路:
- 借鉴C的基本语法
- 借鉴JAVA语言的数据类型和内存管理
- 借鉴Scheme语言,提升函数的地位(1975年的古早语言)
- 借鉴Self语言,使用原型(prototype)的继承机制
JS的缺陷
- ===和==
- ==判断的值类型不同时候,会发生自动转换,得到的结果不符合人类直觉
"" =="0" //false
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
我脑壳里的问号巨多,所以呢,用“===”就对了 2. JS里面数组也是对象
- 数组也是JS的object
- 区分对象是不是数组,需要 3个条件都成立
if ( arr &&
typeof arr === 'object' &&
typeof arr.length === 'number' &&
!arr.propertyIsEnumerable('length')){
alert("arr is an array");
}
- 麻烦
- 自动插入行尾分号
- return 后面不能接回车,不然直接返回一个undefined 就是因为自动补全; return;....GG
- 知不知道为什么会有NULL和 undefined两东西
- 对象object用NULL
- 非对象的数据类型用undefined,表示为未定义
- 没有命名空间
- Tina,他居然没有命名空间,还允许同名函数的重复定义,哦上帝,后面还能直接覆盖前面的定义,不适合大型开发就是这么来的