JavaScript的设计缺陷

117 阅读1分钟
  1. 没有完整的面向对象和自定义类型支持:是的,因为不能太像Java,所以牺牲了这点,这个祸根到现在还没解决(虽然ES6已经很尽力了)

  2. 没有原生命名空间支持:所有没有命名空间支持的语言,都不适合做大型应用项目

  3. 没有模块封装和加载机制(动态加载、静态加载):这个就真不用多说了,多少前端的血和泪,多少年了,到现在还是没有标准方案

  4. 方法没有局部作用域:let关键词咋来的?血泪交汇来的。

  5. this变量的初学者常见问题,尤其是匿名函数。这个问题PHP5.5之前竟然也有,哈哈。

  6. Array是Object:这是最让初学者抓狂的问题,而且,直到ES6才解决,现在仍然是用小聪明的方法来判断变量是不是Array

  7. 跟PHP一样,纯传值,没有传引用的方式,不过好在Array是Object,传的是对象指针,所以开销不算大,不过,没有办法实现out parameter(除非是Object,采用call by sharing方式)

  8. 语法糖太少:ES6已经改善了不少,我们就想想,有多少库就是为了可以用闭包写for each的