JavaScript的诞生

90 阅读1分钟

JavaScript 的诞生

1995年,Brendan Eich 用10天开发了JS

Breadan Eich的设计思路:
- 借鉴C的基本语法
- 借鉴JAVA语言的数据类型和内存管理
- 借鉴Scheme语言,提升函数的地位(1975年的古早语言)
- 借鉴Self语言,使用原型(prototype)的继承机制

JS的缺陷

  1. ===和==
  • ==判断的值类型不同时候,会发生自动转换,得到的结果不符合人类直觉
"" =="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");
  }
  • 麻烦
  1. 自动插入行尾分号
  • return 后面不能接回车,不然直接返回一个undefined 就是因为自动补全; return;....GG
  1. 知不知道为什么会有NULL和 undefined两东西
  • 对象object用NULL
  • 非对象的数据类型用undefined,表示为未定义
  1. 没有命名空间
  • Tina,他居然没有命名空间,还允许同名函数的重复定义,哦上帝,后面还能直接覆盖前面的定义,不适合大型开发就是这么来的