Javascript高级程序设计第四版详细测评[通俗易懂]

Javascript高级程序设计第四版详细测评[通俗易懂]简介哈喽大家好,我是大圣,上次做了一个js的书籍测评,评价还不错,在做css和node之前,再做几本书的详细推荐吧,国庆今天又在家好好读了几本具有代表性的javascript高级程…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

简介

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

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

  2. javascript忍者秘籍

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

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

  5. how javascript works

  6. javascript20年(电子八卦书)

Javascript高级程序设计第四版详细测评[通俗易懂]

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书籍,效果倍棒

Javascript高级程序设计第四版详细测评[通俗易懂]

image-20201008061120962

版本

Javascript高级程序设计第四版详细测评[通俗易懂]

image-20201006214121858

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

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

Ecmascript

前三章

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

Javascript高级程序设计第四版详细测评[通俗易懂]

image-20201005070058425
Javascript高级程序设计第四版详细测评[通俗易懂]
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是弱弱的拿着,所以不会阻止垃圾回收的时候,我笑了,翻译还是挺萌的,并且书里对定型数组的讲解,还是蛮不错的

Javascript高级程序设计第四版详细测评[通俗易懂]

image-20201005212616083

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

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

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

Javascript高级程序设计第四版详细测评[通俗易懂]

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委员会成员

Javascript高级程序设计第四版详细测评[通俗易懂]

image-20201006215835219
Javascript高级程序设计第四版详细测评[通俗易懂]
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源码才知道的

Javascript高级程序设计第四版详细测评[通俗易懂]

image-20201006080650548
Javascript高级程序设计第四版详细测评[通俗易懂]
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就是比较合理的场景

Javascript高级程序设计第四版详细测评[通俗易懂]

image-20201006222338112

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

总结

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

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

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. 也看看其他文章

Javascript高级程序设计第四版详细测评[通俗易懂]

劝退师个人微信:huab119

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171349.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 【Chrome必备插件,一键提升10倍效率】新用户永久免广告,好用!

    经过程序猿哥哥们马不停蹄的疯狂开发CSDNChrome插件终于又双叒叕更新啦快看看这次带来了什么神仙功能助你的开发速度起飞就现在快去戳下方下载体验一下吧~下载官网下载官网下载官网(悄咪咪的告诉大家!文末送大奖噢!快去参加吧~这次我们对小伙伴们反映比较多的新标签页做了重大更新,更新完成后的界面是这个样子的!在这里可以自行添加喜欢的搜索入口噢~还可以定制个性化的桌面快捷图标同时壁纸也是可以更换哒之前咱们介绍的插件的功能大家还记得嘛?小搜搜再来带大家温习一遍咱们的插件功能~新

  • elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解「建议收藏」

    1.如何实现mysql与elasticsearch的数据同步?逐条转换为json显然不合适,需要借助第三方工具或者自己实现。核心功能点:同步增、删、改、查同步。2、mysql与elasticsearch同步的方法有哪些?优缺点对比?目前该领域比较牛的插件有:1)、elasticsearch-jdbc,严格意义上它已经不是第三方插件。已经成为独立的第三方工具。https://github.com/jp

  • mysql配置环境变量(win 10)[通俗易懂]

    1、安装完mysql后就需要配置环境变量(win10)选择“我的电脑”,单击右键,选择“属性->高级->环境变量中的系统变量,对MYSQL_HOME、Path这2个系统变量分别设置如下相应的值(设置原则:如果存在相应的变量,直接对该变量进行编辑,注意只添加不删除;如果该变量不存在,则新建后再编辑。)这里由于没有于是就新建一个环境变量MYSQL_HOM MYSQL_H…

  • Codeforces Round #275 (Div. 2) C – Diverse Permutation (构造)[通俗易懂]

    Codeforces Round #275 (Div. 2) C – Diverse Permutation (构造)

  • 最全的ios系统导出微信聊天记录&生成词云教程

    首先放一张我的iPhone手机导出微信聊天记录生成的词云效果图(个别敏感词汇请大家自行忽略hhh):对于如何导出手机上的微信聊天记录,网上绝大部分教程提到的“楼月微信聊天记录导出恢复助手”和“手机博士微信聊天记录查看”等软件都是收费的,免费版本只能查看很少的几条聊天记录并且不能导出。在这里提供一种绝对免费的方法可以方便地导出微信聊天记录,后面附上根据聊天记录生成词云的教程。由于我个人的手机是i…

  • 我所喜欢的Drupal教程及资源

    我所喜欢的Drupal教程及资源本文转载于http://www.sayblog.me/the-drupal-tutorials-and-resourcesthat-i-like.html  Drupal是一个免费开源的内容管理系统(CMS),就跟Wordpress一样,不过要比Wordpress更具威力,也更复杂一些。Wordpress已经做得相当好了,甚至可以说已经很完美了,而且简单易用,所以它的用户比Dru

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号