# JS 笔记

# 历史

在过去, Web 刚刚出现的时候, 网络状态还很糟糕, 用户与服务端进行数据交互是一件比较折磨人的事. 所以类似 JS 的技术出现, 它将一部分可以在浏览器端完成的工作从服务端分离开来, 减少用户不必要的访问(尤其是避免错误的访问数据), 提高用户体验.

这样的技术很快被推广开来, 但是不同的浏览器厂商有不同的 "JS" 实现, 直到有一天 "JS" 的标准化被提上日程, 让 ECMAScript 能够与世人见面. 但是 ES 本质上只是一种脚本语言的实现标准, 它只对一些公共的语言基础做出要求, 而对具体的浏览器或者其他脚本载体并没有说太多.

那么我们的主角 JS 可以看做是 ES 的一个实现版本, JS 在 ES 的基础上还完成了 BOM 和 DOM 相关对象的实现, 即 JS 可以看做是 ES + BOM + DOM 的组合. 虽然不同浏览器对 JS 的基础, 也就是 ES 的部分, 实现都还不错, 但是在 BOM 和 DOM 对象的使用上可能存在一些兼容性的问题, 尤其是那个叫 IE 的浏览器.

在今天看来, JS 还是比较像一门高级编程语言的, 但是 JS 刚出生那一会, 更多的, 是被作为一个临时的工具或者叫玩具. 所以现在的 JS 还有很多看起来比较诡异的写法, 尤其是习惯了强类型语言的开发之后, 一方面这些写法是为了解决历史遗留问题, 另一方面是语言本身不完善导致的. 不过好在这门语言在逐渐升级, 情况正在好转.

# 笔记内容的说明

笔记中涉及的关于 ES 的内容, 没有说明则是指 ES6 .

# 参考资料

Last Updated: 12/13/2019, 1:26:51 PM