一本JavaScript参考手册是不是已经覆盖了JavaScript的所有知识点?
或者通过学习JavaScript解释器的源代码可以透彻理解JavaScript?
我觉得市面上的大多数书籍,肯定是有一个共同的知识点来源,根据这个根本来源加上自己的一些分析编成书的。所以找到了这个共同的知识点来源,就可以不用看书或者少看书了。
一本JavaScript参考手册是不是已经覆盖了JavaScript的所有知识点?
或者通过学习JavaScript解释器的源代码可以透彻理解JavaScript?
我觉得市面上的大多数书籍,肯定是有一个共同的知识点来源,根据这个根本来源加上自己的一些分析编成书的。所以找到了这个共同的知识点来源,就可以不用看书或者少看书了。
三个方面回答。
一般讨论javascript, 都是以浏览器环境为基础,此时会设计两个跟javascript没多大关系的东西: BOM 和 DOM
简单说:
BOM就是javascript里你会见到的window对象.
DOM就是document对象
当然还会涉及CSS
如果以0基础推荐: 图灵出版社的:《Javascript基础教程》《CSS基础教程》 三本书就够了。
提高: 图灵出版社:《Javascript高级编程》,《精通CSS》,《Javascript语言精粹》
也就是纯粹的javascript, 你可以理解成在node.js环境下运行就ok, 不用管浏览器那些东西。
《Functional Programming in Javascript》
javascript从浏览器发展到桌面,又涉及移动,在硬件开发也能发挥作用。几乎有统治世界的趋势。
推荐尝试几个库:
underscore 或 lodash
mocha + chai
react.js
ember.js
angular.js
没有比这里更全的: https://developer.mozilla.org/zh-CN/
github awesome系列: https://github.com/sindresorhus/awesome
比如github awesome front-end: https://github.com/sindresorhus/awesome#front-end-development
《javascript高级程序设计》读个三五遍(隔一段时间读),加上做项目实战,对js的理解绝对会深很多。没事看看别人的开源代码,在工作中试着把学到的思路和方法应用上去。一名小白的浅见。
如果是进阶的话,建议不要再看书,因为书上的东西大多数都是已经比较落后了的,不如看一些技术博客,多和一些技术大牛讨论一些问题,多逛逛github看看开源的项目提升要快的多
javascript权威指南第六版不错,内容组织地很好也很详细,有些单元讲一些比较深入的概念可以先看遍有个印象,基础那些一定要仔细看看并适当记忆。 偶尔会有些概念比较难懂,如果书中的描述和示例无法让你很好得理解这些概念可以去看Mozilla组织对javascript编写的教程https://developer.mozilla.org/en-US/docs/Web/JavaScript
里面对比如闭包这种概念讲得比较详细,也有示例便于读者理解,用的英文也比较易懂,静下心来慢慢看咱们都能看懂的。
如果你想了解语言细节。看标准是最好的办法,但是标准很多时候不说人话,我推荐 YDKJS。
如果你不打算研究 JS 的细节,而是和 JS 无关的函数是编程,推荐JavaScript 轻量级函数式编程。
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
楼主真的想深入 JavaScript 的话需要理解 JavaScript 是怎么实现的, 用 JavaScript 做什么?
太长我简写 js 了.. 语言只是应用抽象到代码的一个环节而已,
你想要了解透彻的话, 就主要了解各个环节, 从界面, 到逻辑, 到 js 引擎底层实现.
界面上 js 用于操作 DOM, 所以了解 DOM 的使用必不可少, 甚至要设计 CSS 方面的事情,
js 当前会为 DOM 生成多种类型, 也会为了渲染 WebGL 增加多种类型的数据,
另外还有界面的性能优化, 代码稳定性, 编写模块, 设计 API 等等
这些是应用方面的内容, 而且也会涉及到网络, 后端, 数据库等等内容
js 的实现很多种, 比如 V8 就是将 js 编译字节码, 还有部分代码直接 JIT 到 native code.
js 除了编译执行, 还有跨语言编译, 就会需要了解 AST, 以及一些 AST 变换, 多种方言
另外考虑性能的时候还要考虑如何执行, 怎样进行垃圾回收, 怎样调试
我们写 React 用到不可变数据, 还需要考虑怎么在 js 当中构造出不可变数据来
另外关于编程的抽象, 需要了解各种编程范式, 而这不限于 js 本身提供的内容
像前边说的, 在 js 里实现 js 没有的编程范式是怎样做到的
关于数据代码抽象, 可能要学 SICP 了解其中的理论体系, 或者 Java 那样典型的语言
关于业务的抽象, 需要经验, 需要大项目的规范, 等等各种知识
上边列出的还只是和我有关系需要去学的. 题主想要深入的话, 估计还会有很多
当然重点还是题主在业务当中遇到了什么? 需要学什么去解决掉眼前的问题?
至于不用看书, 我觉得是可以的. 但是你依然要浏览大量的网页的文档, 知识分布在各个站点上
如果只是说文档的量的话, 我估计不会少, 每年都有人开发新的技术, 永远别想看完