文章吧-经典好文章在线阅读:深入理解ES6读后感锦集

当前的位置:文章吧 > 原创文章 > 原创精选 >

深入理解ES6读后感锦集

2020-10-22 00:22:26 来源:文章吧 阅读:载入中…

深入理解ES6读后感锦集

  《深入理解ES6》是一本由【美】Nicholas C. Zakas著作,电子工业出版社出版的平装图书,本书定价:CNY 99.00,页数:2017-7-1,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。

  《深入理解ES6》精选点评:

  ●看了前两章,受益匪浅! 在传递新知识的时候,还巩固了ES5 的知识

  ●很棒,看完对 Promise 和 OO继承 理解更进一步。

  ●比阮一峰那本好很多。

  ●Zakas的又一部杰作,他的作品最优秀的地方在于只是阐述,很少评价,这在帮助我们夯实基础时十分有意义,我也喜欢这种风格。我是中英文参照阅读的,译本后半部分有一些文字上的纰漏,但是总体来说忠实原文,水平还是相当不错,希望再版时可以修复这些文字问题。

  ●深入学习es6,为后续学习vue.js做准备。

  ●最近看过的最好的一本关于js的书

  ●算是原理讲得好的工具书吧,但评分太高了吧,难道js平均水平比较低?

  ●ES6的入门书籍 比阮老师的内容更丰富一些,不过对于入过门的,还是觉得 MDN 足够,最多就当查漏补缺吧。

  ●Nicholas Zakas不愧是Javascript语言的顶级专家,对原理的透析和解读令人激赏、赞叹。《深入理解ES6》这本书的示例,条理清晰、层次分明,经过作者层层递进地阐释,似乎每个概念都自成体系,极易理解,值得反复阅读、学习、思考、钻研。没有深厚的功底,很难做到这一点,作者确实牛逼!

  ●查漏补缺

  《深入理解ES6》读后感(一):看完第一章,忍住不来豆瓣写第一次书评。

  今天上午到的。第一章看完了,其他地方也翻了翻。总体来说,翻译很棒,就像是国人写的。而且本书最大的优点是排版和字体。这本书是我买过那么多书以来,字体最好看,排版最好的一本没有之一。 说了些外表,说一下内容吧。 这本书说的比较细,在我看来是比阮老师写的好一点的。其中关于TDZ暂时性死区中,关于typeof的情况说的比阮老师好一些。不过不适合刚入js就看这本的。最好有点js基础再来看。

  但是美中不足的是书最后《索引》,居然有十五页,有点多了。而且索引这块,字体有点混乱,有点宋体+微软雅黑的味道。一会宋体,一会雅黑。而且排版也有点差强人意。而且部分索引好像是错的,我试了一些,有几个索引的内容不对。

  还有一个缺憾是没有介绍async/await,不过可以去阮老师那里看。 因为只看了一章还没有看完,没有办法给出比较全面的评价。不过就我而言,这本书除了最后的索引有点差强人意,没有介绍async/await。其他地方真的是很棒。入手绝对不亏。因为写的是真好。

  《深入理解ES6》读后感(二):勘誤

  

p89

解构是一种打破数据解构

P94

这种语法实际上与传统对象字面量的语法相悖,原来的语法名称在冒号左边,值在右边;现在值在冒号右边,而对象的属性名在左边。后面反了

p97

这一点与数组解构的约定不同

  应为对象

p205

正常情况下,继承自 Array 的 slice() 方法应该返回 Array 的实例,但是在这段代码中,slice() 方法返回的是 MyArray 的实例。

  原文:

In this code, the slice() method returns a MyArray instance. The slice() method is inherited from Array and returns an instance of Array normally.

  翻译似乎没有问题,但是一两遍真的很难读懂。应该为:slice() 方法继承自Array,应该会返回一个 Array 的实例。强调的是调用 slice 的结果返回了实例。

  《深入理解ES6》读后感(三):入门ES6必读,翻译有错误

  书是好书,入门es6必读,但中文版有一些翻译错误的地方,例如第六章讲symbol的开头的整段翻译都有点问题。

  英文原文:“…Symbols began as a way to create private object members, a feature Javascript developers wanted for a long time. Before symbols, any property with a string name was easy to access regardless of the obscurity of the name, and the private names feature was meant to let developers create non-string property names. That way, normal techniques for detecting these private names wouldn’t work. The private names proposal eventually evolved into ECMAscript 6 symbols, and this chapter teaches you how to use symbols effectively. Althoughsymbols do add non-string values for property names, the goal of privacy was dropped. Instead, symbol properties are categorized separately from other object properties.”

  中文翻译:“……起初,人们用它来创建对象的私有成员,Javascript开发者们对这个新特性期待已久。在Symbol出现以前,人们一直通过属性名来访问所有属性,无论属性名由什么元素构成,全部通过一个字符串类型的名称来访问;私有名称原本是为了让开发者们创建非字符串属性名称而设计的,但是一般的技术无法检测这些属性的私有名称。私有名称最终演变成了ECMAscript 6中的Symbol,本章将讲解如何有效地使用它。虽然通过symbol可以为属性添加非字符串名称,但是其隐私性就被打破了。最终,新标准中将Symbol属性与对象中的其他属性分别分类。”

  就不一一指出问题了,试译如下,大家对照着看吧:

  “Symbol起初用于创建私有对象成员,这也是Javascript开发者日思夜想的功能。在Symbol出现之前,任何拥有字符串名称的属性都可以轻松访问,无论这个名称有多晦涩难懂。私有名称功能就是为了让开发者创建非字符串类型的属性名称。这样,一般的技术就无法检测到这些私有名称。对于私有名称的提议最终演变成ECMAscript 6中的Symbol。本章会教你如何有效使用Symbol。尽管Symbol确实可以为属性添加非字符串的名称,但其最初的私密性目标已被放弃。取而代之的是,将Symbol属性在其他对象属性中单独分类出来。”

  《深入理解ES6》读后感(四):《深入理解ES6》读书笔记

  Q

  etter函数以及getter函数的作用

  对象的访问器属性:get的作用

  54-58的函数多种用途以及块级函数看不懂

  64-65的箭头函数没有this绑定看不懂

  call、apply和bind方法

  正确使用Symbol的方法

  变量:

  不可以访问

  变量声明后:可以访问 但是值为undefined

  变量初始化后:可以访问 值不是undefined

  使用let或者const实现块级声明,这个时候语言引擎会将声明放到临时死区中。

  使用var会覆盖一个已经存在的全局属性。

  使用策略:默认使用const,只有确定变量需要改变的时候才使用let。

  字符串:

  如果文字的编码超过了基本多文种平面的话(16位二进制),则需要加入代理对来表示这个文字。

  准确比较字符串

  a.normalize() === b.normalize()

  字符串识别方法:

  includes

  tartsWith

  endsWith

  返回新字符串:

  repeat

  正则的修饰符:

  ticky ?

  u修饰符:代理对检测修饰符

  i修饰符:大小写无关修饰符

  global修饰符

  获取正则原表达式的文本:source属性

  获取修饰符:flags属性

  模板字面量

  基础用法:用反撇号替换了引号,内部使用反撇号需要用反斜杠转义;可以直接换行也可以用n转义

  字符串占位符:${任意的JS表达式}

  模板标签:创建领域专用语言DSL,函数化处理literals(文字)以及substitutions(模板字面量)

  函数:

  在函数中使用默认参数

  使用argument对象将入参重制为初始值,ES6以及ES5严格模式下,argument对象不受入参的影响

  函数在临时死区进行默认参数的顺序处理

  使用argument处理不定量参数:不被箭头函数支持

  使用不定参数(...keys)来处理无命名参数:必须放在函数末尾,整合参数为一个可以无限长度的数组,对原来的argument没有影响

  使用展开运算符来将数组打散作为独立的参数传入函数:可以混合使用

  箭头函数:

  let doNothing = () => {};

  和sort、map、reduce这类数组方法合用

  在箭头函数上调用call、apply和bind方法

  重写递归函数,利用尾调用优化来优化程序

  对象:

  创建对象: Object.create(xx)

  对于对象方法的定义消除了冒号和function关键字

  比较两个参数的类型和值:Object.is(a,b),用于判断NaN和NaN等价

  混合:一个对象接收来自另一个对象的属性和方法。

  Object.assign()方法可以接收任意数量的对象,并按照制定的顺序将属性复制到接收对象中。同时:如果属性重复,获取最后一个属性。

  通过Object.getOwnPropertyNames()来明确定义枚举顺序(82)。

  使用Object.setPrototypeOf()来修改对象的原型(82)。使用super来调用对象的原型(84),并始终指向正确的对象(86)。

  对象:

  解构赋值 +默认值 + 为非同名变量赋值 + 嵌套

  数组:

  解构赋值 +默认值 + 嵌套 + 不定元素

  混合解构:

  对象解构 + 数组解构

  解构参数:

  用比较冗余的方式设立解构参数;

  用比较不溶于的方式设立;

  ymbol

  定义方法

  使用方法

  共享体系:全局访问列表

  et

  创建:new Set([1,2,3,4]); add,重复的参数调用会忽略(132)。

  删除元素:delete

  修改:无

  查询:has

  遍历:注意回调函数的前两个参数的值是一样的(134)。

  转化为数组:利用展开运算符

  缺点:无法通过索引值访问元素;不受到原引用的影响

  优点:保证元素的值不重复

  WeakSet

  创建: new WeakSet();add

  缺点(138-139):只能add对象,不可迭代,不支持size属性

  优点:当其最后一个引用被移除的时候(= null),其会被回收并释放内存

  Map

  创建:new Map(arr1, arr2, arr3....);set([key], [value])

  删除:删除元素delete([key]),移除所有元素clear()

  修改:猜测:set()

  查询:get([key]), has([key])

  遍历:value、key、其本身(142)

  缺点:调用比较麻烦

  优点:不会像对象一样,将属性名强制转换为字符串类型;可以将对象作为属性名(唯一选择147)

  WeakMap

  缺点:key值只能是对象

  优点:不支持遍历、size属性和clea()r方法

  迭代器的使用场景和历史(149)

  目的:消除循环复杂性减少错误

  生成器

  目的:用于简化创建迭代器对象过程

  创建:函数命名前增加星号,yield(152)

  特性:yield无法超过函数边界(153)

  地位:ES6的重要特性

  迭代器

  应用场景:可迭代对象:数组、Set、Map、字符串(155)

  访问默认迭代器:value[Symbol.iterator]() (156)

  访问内建迭代器:entries() values() keys()

  使用:next(), for of(160)

评价:

[匿名评论]登录注册

评论加载中……