Javascript高级程序设计第四版详细测评

article/2025/10/5 22:23:38

简介

哈喽大家好, 我是大圣,上次做了一个js的书籍测评,评价还不错,在做css和node之前,再做几本书的详细推荐吧,  国庆今天又在家好好读了几本具有代表性的

  1. javascript高级程序设计【红宝书】

  2. javascript忍者秘籍

  3. 你不知道的javascript 【小黄书】

  4. javascript语言精粹与编程实践【绿皮书】

  5. how javascript works

  6. javascript20年(电子八卦书)

img

先来红宝书吧,这本书一直都是体系化学习js必备的书籍,第四版相比于第三版,多了很多,整本书分成三个大模块,全面使用最新的语法, 国庆又详细的看了一遍

  1. Ecmascript语法

    1. 基础内容

    2. 进阶操作

    3. 新增了迭代器,代理反射,期约(Promise)三个章节

  2. bom和dom

    1. 浏览器宿主环境的相关api

  3. javascript api

    1. js相关的进阶api

    2. 新增了模块和工作者线程(web worker)

    3. 最佳实践

这本书详细的构建了整个javascript开发者所需要的知识体系,所以建议这本书作为体系化学习的开始, 读2~3遍后,再去阅读其他进阶和垂直领域的js书籍,效果倍棒

image-20201008061120962

版本

image-20201006214121858

我手里有的只有234三本  ,第四版换作者了,精彩依旧,体系化依旧是是红宝书的最大特点,借鉴winter的书评,这本书最大的特点就是体系化的前端教程,它是可以用来做教材的,javascript这几年很多好书,都是讲单点的,建议大家用这本书来构建前端开发的知识体系,再去看别的书和框架,构建前端程序员的核心竞争力 推荐给大家

第四版的另外一个特色,是很多章节都带上了二维码,扫码可以看到官方对这一节的解读,体验不错, 不过如果视频能换成大妹子+露脸就更好了

Ecmascript

前三章

第一章相关的历史更推荐《javascript20年》,第二三章是基础,有js基础的随便翻翻就好,值得注意的是第二章增加了symbol,第三章的位运算,这些都是在vue3源码里出现的,位运算关系到vue3的组合静态标记中的patchFlag和react源码中的EventFlag,一定要搞明白,而且位运算本身就是做组合权限教研的最佳实践,按位或授权,按位与校验权限,除了理解vue3和react源码外,我们做组件开发的时候也用的到

image-20201005070058425
image-20201005064951859

变量作用域与内存

这一章和第三版差不多,主要是讲清楚原始类型和引用类型,一个图就能搞明白,帮我们理解传参至关重要,除了undefined,null,boolean,number ,string,symbol是原始值,传递的时候是影分身, 其他都是引用,还是指向你自己, 修改会有副作用

let obj1 = new Object();
let obj2 = obj1;
obj1.name = "lsp";
console.log(obj2.name);  // "lsp"

还有就是作用域链的查询,配合乱遭的变量提升、块级作用域、闭包,是众多骚包面试官喜欢的笔试题,与其刷题不如一次性搞清楚,配合小黄书上册,基本就通了

最后是垃圾回收,机制有点像《寻梦环游记》,一个人的死亡并不是重点,被所有人遗忘后,才会被清理,变量也是如此, 如何利用垃圾回收机制去优化自己的代码,书中也给出了几个中肯的建议

内置引用类型

这两张主要是介绍内置各种乱遭的数据类型,比如Date,Regex,math,以及集合的引用类型arr,obj,set,map等,值得注意的是weakmap的讲解,会让大家对vue3的源码理解有所帮助

看到书里解释weak是弱弱的拿着,所以不会阻止垃圾回收的时候,我笑了,翻译还是挺萌的,并且书里对定型数组的讲解,还是蛮不错的

image-20201005212616083

迭代器、生成器、面向对象、代理

自带的for循环比较明显的劣势就是需要知道如何迭代,es6之后的迭代器就是为了解决这个问题,没有代码讲起来比较飘忽

大概意思就是,定义了可迭代的协议,只要我们实现了这个协议的要求,也就是规定好【Symbol.iterator】这个key的行为,就可以通过迭代器去消费,不一定非得是数组或者对象

image-20201005214820288

生成器也贼牛逼,可以在一个函数内部暂停,也就是一个用*定义的生成器函数,内部遇见yield,就会暂停执行,知道调用next来恢复执行

关于对象讲解了对象的configurable,enumberable,wirtable,value几个数据属性,分别对应着数据的能否删除,能否通过for in循环访问,能否修改和实际的值,介绍了一堆es6+的增强语法,然后详细讲解了原型链和继承,还加上了es6的class语法,配合小黄书上册,以后相关的问题你就是专家,和面试官谈笑风生

然后就是学习vue3必备的Proxy和Reflect了, 响应式必备 快去看书吧,看完这章再去研究vue3的reactivity模块巩固一下,效果更佳

函数和promise

然后函数章节大家基本都会了,大部分内容大家都耳熟能详了,关于尾递归优化的小节值得关注,然后就是热度最广的期约与异步函数了,包括基本的使用,promise的合成策略呀,一些第三方的扩展等,

关于promise的翻译,上个测评我讲过了,我问过hax,是future+promise的结合体, 我也觉得没必要翻译,但是如果翻译的话,我觉得期约还是挺准确的,毕竟总有一天这些术语都要翻译,否则技术书籍里的英文单词会越来越远

配合promise和async await,我们可以写出更简洁和容易理解的代码,也是现代前端必备的技能了,这一章配合小黄书中册,以及绿皮书对promise的剖析,绝对是进阶必备

以上都是js的语言规范,然后推荐大家关注tc39的github,会有很多新语法的讨论,了解新语法的来龙去脉,stage3的浏览器就基本是先了,stage2就是非常有潜力的天,我比较关注的比如Temporal处理事件,class fields

能在语言的设计阶段就能围观甚至参与,绝对是装逼必备技能,这里推荐关注我的技术偶像之一hax,tc39委员会成员

image-20201006215835219
image-20201006215913089

bom和dom

bom和客户端检测

然后就是浏览器环境了,所谓的bom和dom,bom没啥多介绍的,大家耳熟能详了,window,location控制导航,navigator了解浏览器,history操作浏览历史等

客户端检测章节主要就是判断各个浏览器,这一块我建议大家阅读司徒正美的《javascript框架设计》,关于浏览器检测讲的最深入,不过现在这个现代浏览器横行的时代,这块内容过一下就好

dom

这块大部分内容也就是复习了,包括nodeType的12个数字都是啥意思,常见的dom操作,去瞅瞅dom启蒙作为复习资料也不错

有一个新的MutationObserver接口值得关注,可以观察dom的变化,比如属性,子节点的变化,都可以记录下来,这个用来做用户行为监控,以及做fmp的性能统计,也就是首屏啥时候渲染出来,还可以设置不同元素的权重,比如video权重高等,统计出一个现在关键的性能治疗fmp,都是很好用的api

然后就是一些扩展,大家也都很熟悉了,比如querySelector啥的,值得一提的是关于dom的遍历,使用NodeIterator和TreeWalker可以非常方便的进行dom深度优先遍历,还有范围选择api,都值得一读,这些新的api可能会对后续的vue和react的虚拟dom实现有一些影响

然后关于事件就当复习了,里面关于ie兼容性的内容为觉得有些多余,总的来说事件的方方面面都介绍到了,dom2和dom3的规范,界面事件,鼠标事件,滚轮,键盘还有合成事件,触摸事件等乱糟的, 不过还是有些细节没介绍到, 比如once配置可以只触发一次, 这个也是我看vue3源码才知道的

image-20201006080650548
image-20201006080056529

然后就是canvas,webgl的入门,表单脚本和错误处理调试,处理xml,这部分第三版其实都有没啥多说的

Javascript API

剩下的部分统称为javascript api,基本都是比第三版多出来的内容,非常推荐阅读了解

比如20章就是一堆html5的新api入门,编码,文件,媒体元素,拖放,通知,页面显隐,web component

然后网络请求部分除了xmlhttprequest,跨域之外,多了fetch api,beacon api和websocket

客户端存储除了cookie还有localstorage和indexdb

新增的es6模块值得关注,讲解了模块系统的发展史,但是没讲到我喜欢的seajs ,差评

除了es6本身的模块系统知识外,也介绍了浏览器里面的script,加上type=module后,就直接支持了import语法,这个就是vue3配套的vite工具的原理了,我写过一个vite源码的文章,欢迎移步, 通过拦截import的请求实现工程化,在不远的未来可能会取代webpack的地位,还不快去好好学习

然后就是web worker,翻译成工作者线程,感觉还不如叫影分身,囧,这一章还是蛮有必要的,大部分js开发者都没有多进程的概念,学完这个我们就知道碰见耗时的任务偷桃子,我们完全可以用猴子猴孙去做,不耽误主进程去和七仙女去讲述葫芦娃从石头里蹦出来的故事,比如我们常见的面试题,大文件上传,计算文件md5这个任务用webworker就是比较合理的场景

image-20201006222338112

最后的最佳实践 没啥说的了,就是常见的优化策略,这部分只是一个入门,后续需要看别的书看进阶,后面框架的推荐竟然还有mooltools等过时的库,所以不看也罢,不如我以后做一起现代的工具推荐

总结

总的来说这本书绝对是前端的重要参考书,借鉴winter的书评,这本书最大的特点就是体系化的前端教程,它是可以用来做脚踩的,javascript这几年很多好书,都是讲单点的

建议大家用这本书来构建前端开发的知识体系,再去看别的书和框架,构建前端程序员的核心竞争力 推荐给大家

image-20201006144255843

下期预告  忍者书和小黄书 or javascript20年

参考资料

  1. tc39  https://github.com/tc39

  2. hax知乎 https://www.zhihu.com/people/he-shi-jun/answers

  3. 《前端会客厅》hax专场  https://www.bilibili.com/video/BV1xT4y1L7ui

  4. Javascript书籍全测评  https://juejin.im/post/6877712145757896717

❤️看完三件事

如果你觉得这篇内容对你挺有启发,我想邀请你帮我三个小忙:

  1. 点赞,让更多的人也能看到介绍内容(收藏不点赞,都是耍流氓-_-)

  2. 关注公众号“前端劝退师”,不定期分享原创知识。

  3. 也看看其他文章

劝退师个人微信:huab119

也可以来我的GitHub博客里拿所有文章的源文件:

前端劝退指南:https://github.com/roger-hiro/BlogFN一起玩耍呀


http://chatgpt.dhexx.cn/article/dfu0kxR9.shtml

相关文章

JavaScript高级程序设计 第4版(中文高清)扫描版

1. JavaScript组成 核心ECMAScript文档对象模型DOM浏览器对象模型BOM 1.2.1 ECMAScript 定义语言的基础 规定了语言的组成部分:语法、类型、语句、关键字、保留字、操作符、对象 js nodejs 都实现了ECMAScript 1.2.2 DOM 文档对象模型 Document Object Model …

Java新手入门值得看的五本书!

很多知识都可以通过书本学习,Java学习也需要书籍,尤其是对于Java初学者和Java自学者来说尤为重要,选择了好了配套书籍在自学的路上可以达到事半功倍的效果,下面为Java初学和自学的朋友推荐几本合适的书籍希望对大家有所帮助。 1、…

学Java可以看哪些书?6本Java书籍推荐

学Java有哪些推荐书籍可以看?很多人都会有这样的疑问。今天,小千整理了一些Java经典书籍,分享给大家。 如果你初出茅庐,对Java感兴趣,想要学Java,在这行深钻研,那么这些书绝对不能少。如果你已…

Java项目:图书馆管理系统思路分析

当当当当~~~~欢迎大家阅读,今天和我一起来整理图书馆管理系统项目的思路分析吧! 一、项目说明 长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较烦琐。在借书时,读者首先将要借的书和借阅证交给工…

必读的10本有关Java的书籍

想知道如何提高你对Java的了解?想成为更好的Java开发人员?来对地方了 我将分享一些最好的Java书籍。这些书经受住了时间的考验,随着岁月的流逝变得越来越重要。 不管是在今年明年,你总有很多东西要学,这也就是为什么…

Java程序员必读的10本书籍

以下列出了10本书,对于任何希望提高Java知识和理解的Java程序员来说都是必不可少的。 如果你是一名程序员,想知道如何提高你对Java的了解或者成为更好的Java开发人员,那你就来对地方了。在本文中,我将分享一些最好的Java书籍。这…

从入门到进阶,JAVA书籍的最佳阅读顺序!

本文首发于知乎,已获得1000赞和收藏。 原文链接:https://www.zhihu.com/question/269505829/answer/1791006152 先介绍下本人的情况,希望对大家学习Java之路有一定帮助。 本人本科完全没接触过Java,后自学Java,对整个…

年底了,感谢大家2022年的支持,虚竹哥送10本JAVA好书

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主&#x1f3…

Java 图书管理系统

学习了类和对象之后,就可以自己来做个小的项目来提升自己的能力了。本文章就来说明如何来做一个简单的图书管理系统。写一些小项目是一种很锻炼逻辑和熟悉语法的好方法。 在做这些项目的时候,要明白一点是我们的Java是面向对象的,要使用面向对…

JAVA学习,你必读的5本JAVA书籍

给广大JAVA爱好者推荐JAVA教程,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物,第四版翻译的已经不错了,其实如果英文OK的人还是读原版比较好。 …

JAVA实战小项目——图书馆管理系统

✨前言 某日在逛b站的时候看到有人做出了图书馆管理系统,在仔细梳理自己以学过的java相关知识点后,发现还是能够实现的!😎 需要用到的相关知识点:向上转型,动态绑定,重写,继承&…

几本推荐的Java书

一、《深入理解Java虚拟机:JVM高级特性与最佳实践》 如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧: 1、了解Java代码的底层运行机制 2、定位性能问题 3、对整个系统进行性能调优 4、解…

Java学习路线总结(书籍、视频推荐篇)

🍅 作者简介:CSDN2021博客之星亚军🏆、新星计划导师✌、博客专家💪 🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师 🍅 关注公众号【哪吒编程】,回复1024&a…

【java】面向程序员的 10 大 Java 书籍 — 历久弥新

一些针对 Java 程序员的最佳书籍,从核心 Java 到最佳实践,从单元测试到 Spring 框架。 历史上排名前 10 位的 Java 书籍 事不宜迟,这里是我列出的一些对 Java 程序员来说最流行和最重要的书籍。 如果您从事 Java 编程 2 到 3 年&#xff0c…

学习Java必看的Java书籍(本本经典实用)

今年下半年,正式系统地学习Java。最近把学习Java所用到的书籍整理了一下,分享出来,希望对正在学习或准备学习Java的人有一定的帮助。 关于Java的学习路线,和IDE工具IntelliJ IDEA的安装使用可以看我之前的文章。当然,我也在不断更新自己的学习总结。也可以关注我一下,大…

关于写的Java书籍进展

大家好,去年说要写本Java书,近期就快出版了。目前已经开始打印样书了,最快于本月中旬左右就可以在互动网www.china-pub.com上看到消息,其它各个网站何时会发售要看具体进货情况。 去年我预期是半年写好这本书,6个月左右…

Java程序员必看的 14 本 Java 书籍!

关乎于程序员,除了做项目来提高自身的技术,还有一种提升自己的专业技能就是:多!看!书! 毕竟,书是学习的海洋呢!So,Java程序员你们准备好了吗?双手奉上Java程序…

豆瓣高分JAVA书籍,你都读过吗?

作为一个程序员,要时时刻刻的学习,豆瓣高分JAVA书籍你都看过了吗?,文末有粉丝福利哦!!! 1.《算法(第4版》 9.32分 本书全面讲述算法和数据结构的必备知识,具有以下几大特…

工作十年,分享看过的优质 Java 书籍

不知不觉,我已经接触 Java 11 年了——从 2008 年北京奥运会那年开始,到现在;未来还会更久。这期间我读了不少 Java 方面的书籍,纸质版的少说有三十来本吧,更何况还有不少的电子书。万事都有好坏,书也一样。…

Java程序员必看经典书籍,助你早日打通任督二脉

一、Java四大神兽,神兽在手,天下我有! 1、《Java核心技术卷一》 唯一可以和《Java编程思想》媲美的一本Java入门书籍。单从技术的角度来看,前者更好一些。但上升到思想层面嘛,自然后者更好,两者的偏重点不…