day04 JavaScript高级程序设计 阅读总结

day04 JavaScript高级程序设计 阅读总结《JavaScript高级程序设计》(第四版)阅读总结额,据说这本是前端er必看书籍,花了20个小时简单把这本书过了一下,目前暂时很少用到的东西我这一遍就没有过了,等以后要用的时候再回来继续学了。先来谈谈这本书的缺点,书籍前面章节用到了一些后面才讲到的东西,比如第三章讲symbol对象时,就用到了后面才讲的iterator和generator。然后就是感觉讲的有点太广了,而且基本没有课后习题,看过就是看过了,顶多自己花时间把书里面的例子都敲一遍。所以我建议应该和现代JavaScript教程一起食用。反

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

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

JavaScript高级程序设计》(第四版)阅读总结

额,据说这本是前端er必看书籍,花了20个小时简单把这本书过了一下,目前暂时很少用到的东西我这一遍就没有过了,等以后要用的时候再回来继续学了。

先来谈谈这本书的缺点,书籍前面章节用到了一些后面才讲到的东西,比如第三章讲symbol对象时,就用到了后面才讲的iterator和generator。然后就是感觉讲的有点太广了,而且基本没有课后习题,看过就是看过了,顶多自己花时间把书里面的例子都敲一遍。所以我建议应该和现代JavaScript教程一起食用。

反过来,全也是它的优点,当做工具书看看也不错,梳理书中的内容,查漏补缺,构建自己的知识体系。

1. 什么是JavaScript

1.1 简短的历史回顾

JavaScript包括以下几个部分:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)。

1.2.1 ECMAScript

ECMAScript,即ECMA-262定义的语言,并不局限于Web浏览器。

1.2.2 DOM

文档对象模型(DOM, Document Object Model)是一个应用编程接口(API),用于在HTML中使用扩展的XML。

1.2.3 BOM

IE3和Netscape Navigator 3提供了浏览器对象模型(BOM)API,用于支持访问和操作浏览器的窗口。使用BOM,开发者可以操控浏览器显示页面之外的部分。而BOM真正独一无二的地方,当然也是问题最多的地方,就是它是唯一一个没有相关标准的JavaScript实现。HTML5改变了这个局面,这个版本的HTML以正式规范的形式涵盖了尽可能多的BOM特性。由于HTML5的出现,之前很多与BOM有关的问题都迎刃而解了。

2. HTML中的JavaScript

这章没有啥值得做笔记的,就略过了。

3. 语言基础

ECMA-262第5版(ES5)定义的ECMAScript,是目前为止实现得最为广泛(即受浏览器支持最好)的一个版本。第6版(ES6)在浏览器中的实现(即受支持)程度次之。到2017年底,大多数主流浏览器几乎或全部实现了这一版的规范。为此,本章接下来的内容主要基于ECMAScript第6版。

3.3 变量

3.3.4 声明风格及最佳实践

ECMAScript 6增加let和const从客观上为这门语言更精确地声明作用域和语义提供了更好的支持。行为怪异的var所造成的各种问题,已经让JavaScript社区为之苦恼了很多年。随着这两个新关键字的出现,新的有助于提升代码质量的最佳实践也逐渐显现。

  1. 不使用var有了let和const,大多数开发者会发现自己不再需要var了。限制自己只使用let和const有助于提升代码质量,因为变量有了明确的作用域、声明位置,以及不变的值。
  2. const优先,let次之使用const声明可以让浏览器运行时强制保持变量不变,也可以让静态代码分析工具提前发现不合法的赋值操作。因此,很多开发者认为应该优先使用const来声明变量,只在提前知道未来会有修改时,再使用let。这样可以让开发者更有信心地推断某些变量的值永远不会变,同时也能迅速发现因意外赋值导致的非预期行为。

3.4 数据类型

注意 即使未初始化的变量会被自动赋予undefined值,但我们仍然建议在声明变量的同时进行初始化。这样,当typeof返回”undefined”时,你就会知道那是因为给定的变量尚未声明,而不是声明了但未初始化。

Symbol类型看个大概就可以,然后直接跳,等后面学完有一定基础再回来看。

3.5 操作符

3.5.2 位操作符(重点理解)

4. 变量、作用域与内存

4.3 垃圾回收

4.3.1 标记清理

4.3.2 引用计数

第5章 基本引用类型

5.2 RegExp

5.2.1 RegExp实例属性

❑ global:布尔值,表示是否设置了g标记。

❑ ignoreCase:布尔值,表示是否设置了i标记。

❑ unicode:布尔值,表示是否设置了u标记。

❑ sticky:布尔值,表示是否设置了y标记。

❑ lastIndex:整数,表示在源字符串中下一次搜索的开始位置,始终从0开始。

❑ multiline:布尔值,表示是否设置了m标记。

❑ dotAll:布尔值,表示是否设置了s标记。

❑ source:正则表达式的字面量字符串(不是传给构造函数的模式字符串),没有开头和结尾的斜杠。

❑ flags:正则表达式的标记字符串。始终以字面量而非传入构造函数的字符串模式形式返回(没有前后斜杠)。

第6章 集合引用类型

6.2.5 迭代器方法

在ES6中,Array的原型上暴露了3个用于检索数组内容的方法:keys()、values()和entries()。keys()返回数组索引的迭代器,values()返回数组元素的迭代器,而entries()返回索引/值对的迭代器:

6.3 定型数组(未学)

定型数组在学习过程中暂时没有见过,感觉有点难懂,等以后需要再回来重新学习。

6.4 Map(映射)

6.4.3 选择Object还是Map

涉及大量增删改查使用Map

6.6 Set(集合)

第7章 迭代器与生成器

第8章 对象、类与面向对象编程

第9章 代理与反射

感觉有点难,以后有需要再回来学习。

const proxy = new Proxy(target, handler)

第10章 函数

10.1 箭头函数

10.3 理解参数

ECMAScript函数的参数只是为了方便才写出来的,并不是必须写出来的。

10.4 没有重载

后定义的函数会覆盖之前定义的函数。

把函数名当成指针也有助于理解为什么ECMAScript没有函数重载。

10.5 默认参数值

10.7 函数声明与函数表达式

因为函数声明会在任何代码执行之前先被读取并添加到执行上下文。这个过程叫作函数声明提升(function declaration hoisting)。在执行代码时,JavaScript引擎会先执行一遍扫描,把发现的函数声明提升到源代码树的顶部。因此即使函数定义出现在调用它们的代码之后,引擎也会把函数声明提升到顶部。如果把前面代码中的函数声明改为等价的函数表达式,那么执行的时候就会出错:

10.9 函数内部

看到这里我是真的想骂人了,前面iterator和generator没讲的时候Symbol就一直用,现在arguments直到第十章才讲,前面也一直用,就不懂搞个引导说后面哪里讲了吗?阅读体验真的差。

10.11 函数表达式

任何时候,只要函数被当作值来使用,它就是一个函数表达式。

第11章 期约与异步函数

第一遍跳,看不懂,实在是太菜了啊!!!

第12章 BOM

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171375.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GSLB相关知识点

    GSLB相关知识点摘要GSLB是GlobalServerLoadBalance的缩写,即全局负载均衡。本文首先介绍了什么是负载均衡SLB,以及为什么要使用SLB。接着引出全局负载均衡GSLB的概念和作用。为此介绍了其基于DNS进行解析和分配负载的实现,包括DNS的原理简介、应用部署中的基本概念、分配负载的决策条件等内容。以外,本文还简单介绍了通过HTTP和IP…

    2022年6月13日
    44
  • android之ArrayAdapter的重写

    昨天介绍了ArrayAdapter的使用,今天介绍一下更加实用的一点,对它进行重写,满足自己的个性化设计需要.ArrayAdapter(数组适配器)一般用于显示一行文本信息,所以比较容易。public ArrayAdapter(Context context,int textViewResourceId, List objects)上面的这行代码来装配数据,要装配这些数据就需要一个连接

    2022年3月10日
    84
  • html怎么让无序列表横向排列_一个人把敌人的炮兵阵地

    html怎么让无序列表横向排列_一个人把敌人的炮兵阵地司令部的将军们打算在 N×M 的网格地图上部署他们的炮兵部队。一个 N×M 的地图由 N 行 M 列组成,地图的每一格可能是山地(用 H 表示),也可能是平原(用 P 表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。图上其它白色网格均攻击不到。从图上可见炮兵的攻击范围不受地形的影响

    2022年8月8日
    5
  • 2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]

    2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]使用STM32F103的程序在这里:https://download.csdn.net/download/weixin_42089190/10456099这个是报告:https://download.csdn.net/download/weixin_42089190/10456097寄存器的配置其实大同小异,各位看官可以下载下来参考一下转眼间2018年6月3日了,刚刚完…

    2022年5月3日
    194
  • pydroid3安装scrapy_安装scrapy框架

    pydroid3安装scrapy_安装scrapy框架修改Anaconda镜像源condaconfig–addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/condaconfig–setshow_channel_urlsyes此时在C:\Users\Administrator(这里是电脑用户名)下就会生成配置文件.condarcchannels:-https://mirrors.tuna.tsinghua.edu.cn/anaco

    2022年9月17日
    3
  • 电力电子技术 学习总结1

    第二章PPT91以前电力电子器件(PowerElectronicDevice)—可直接用于处理电能的主电路中,实现电能的变换或控制的电子器件。主电路(MainPowerCircuit)—电力电子设备或系统中,直接完成电能变换或控制的电路。广义上电力电子器件可分为电真空器件和半导体器件两类。自20世纪50年代以来,真空管(VacuumValve)仅在频率很高(如微波,数GHz)的大功率高频电源中还在使用,而在大多数电能变换领域,电力半导体器件已取代了汞弧整流器、闸流管等电真空器件

    2022年4月14日
    93

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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