红宝书学习记录

 

    目录

  1. 什么是JavaScript
  2. HTML中的JavaScript
  3. 语言基础
  4. 变量、作用域与内存
  5. 基本引用类型
  6. 集合引用类型
  7. 迭代器与生成器
  8. 对象、类与面向对象编程
  9. 代理与反射
  10. 函数
  11. 期约与异步函数
  12. BOM
  13. 客户端检测
  14. DOM
  15. DOM扩展
  16. DOM2与DOM3
  17. 事件
  18. 动画与Canvas图形
  19. 表单脚本
  20. JavaScript API
  21. 错误处理与调试
  22. 处理XML
  23. JSON
  24. 网络请求与远程资源
  25. 客户端存储
  26. 模块
  27. 工作者线程
  28. 最佳实践

附录A ES2018与ES2019

附录B 严格模式

附录C JavaScript库和框架

附录D JavaScript工具

学习时间安排:

https://www.cnblogs.com/eve-d/p/15765509.html

每日有学习记录进行打卡 

  • 2022年1月5日

5、基本引用类型学习记录

  1)对象被认为是某个特定引用类型的实例;

  2)构造函数就是用来创建新对象的函数;
  3)新对象通过使用new操作符后跟一个构造函数(constructor)来创建。

  例如:

 

 

注意 函数也是一种引用类型

  5.1  Date学习记录

  1)Date类型将日期保存为时间1970年1月1日午夜(零时)至今所经过的毫秒数。

  2)Date类型可以精确表示1970年1月1日之前及之后285616年的日期。

  3)创建日期对象: let now = new Date()。(⚠️:data——〉数据,date才是———〉日期)

注意:在不给Date构造函数传参数的情况下,创建的对象将保存当前日期和时间。

  4)辅助方法:Date.parse()和Date.UTC(),以及Date.now()方法

 

Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数。

比如,要创建一个表示“2019年5月23日”的日期对象,可以使用以下代码:

 

 

 注意:如果传给Date.parse()的字符串并不表示日期,则该方法会返回NaN。

如果直接把表示日期的字符串传给Date构造函数,那么Date会在后台调用Date.parse()。换句话说,下面这行代码跟前面那行代码是等价的:

 

注意 不同的浏览器对Date类型的实现有很多问题。比如,很多浏览器会选择用当前日期替代越界的日期,因此有些浏览器会将"January 32, 2019"解释为"February 1, 2019"。Opera则会插入当前月的当前日,返回"January当前日,2019"。就是说,如果是在9月21日运行代码,会返回"January 21,2019"。

Date.UTC()方法也返回日期的毫秒表示

注意 传给Date.UTC()的参数是年、零起点月数(1月是0,2月是1,以此类推)、日(1~31)、时(0~23)、分、秒和毫秒。这些参数中,只有前两个(年和月)是必需的。如果不提供日,那么默认为1日。其他参数的默认值都是0。

例如:

 

 

 

注意 Date.parse()一样,Date.UTC()也会被Date构造函数隐式调用,但有一个区别:这种情况下创建的是本地日期,不是GMT日期。不过Date构造函数跟Date.UTC()接收的参数是一样的。因此,如果第一个参数是数值,则构造函数假设它是日期中的年,第二个参数就是月,以此类推。

 

 

 

 

Date.now()方法

ECMAScript提供了Date.now()方法,返回表示方法执行时日期和时间的毫秒数。这个方法可以方便地用在代码分析中 

 

 

 

5.1.1 继承的方法学习记录

Date类型重写了toLocaleString()、toString()和valueOf()方法

Date类型的toLocaleString()方法返回与浏览器运行的本地环境一致的日期和时间。

toString()方法通常返回带时区信息的日期和时间,而时间也是以24小时制(0~23)表示的。

例如:2019年2月1日零点的示例

 

因为现代浏览器在这两个方法的输出上已经趋于一致。在比较老的浏览器上,每个方法返回的结果可能在每个浏览器上都是不同的。这些差异意味着toLocaleString()和toString()可能只对调试有用,不能用于显示。

Date类型的valueOf()方法根本就不返回字符串,这个方法被重写后返回的是日期的毫秒表示。

例如:

 

5.1.2 日期格式化方法

Date类型有几个专门用于格式化日期的方法,它们都会返回字符串:

  ❑ toDateString()显示日期中的周几、月、日、年(格式特定于实现);

  ❑ toTimeString()显示日期中的时、分、秒和时区(格式特定于实现);

  ❑ toLocaleDateString()显示日期中的周几、月、日、年(格式特定于实现和地区);

  ❑ toLocaleTimeString()显示日期中的时、分、秒(格式特定于实现和地区);

  ❑ toUTCString()显示完整的UTC日期(格式特定于实现)。

 

 这些方法的输出与toLocaleString()和toString()一样,会因浏览器而异。因此不能用于在用户界面上一致地显示日期。

注意 还有一个方法叫toGMTString(),这个方法跟toUTCString()是一样的,目的是为了向后兼容。不过,规范建议新代码使用toUTCString()。

 

5.1.3 日期/时间组件方法

 

5.2 RegExp学习记录

ECMAScript通过RegExp类型支持正则表达式。正则表达式使用类似Perl的简洁语法来创建:

 

 

正则表达式匹配模式的标记:

  ❑ g:全局模式,表示查找字符串的全部内容,而不是找到第一个匹配的内容就结束。

  ❑ i:不区分大小写,表示在查找匹配时忽略pattern(模式)和字符串的大小写。

  ❑ m:多行模式,表示查找到一行文本末尾时会继续查找。

  ❑ y:粘附模式,表示只查找从lastIndex开始及之后的字符串。

  ❑ u: Unicode模式,启用Unicode匹配。

  ❑ s:dotAll模式,表示元字符.匹配任何字符(包括\n或\r)。

举例:

 

 

在正则表达式中,所有元字符在模式中也必须转义,包括:

 

元字符在正则表达式中都有一种或多种特殊功能,所以要匹配上面这些字符本身,就必须使用反斜杠来转义。

举例:

 

正则表达式也可以使用RegExp构造函数来创建,它接收两个参数:模式字符串和(可选的)标记字符串。任何使用字面量定义的正则表达式也可以通过构造函数来创建,比如:

 

 注意,RegExp构造函数的两个参数都是字符串。

 

  • 2022年1月18号

6、集合引用类型

  1)对象

  2)数组与定型数组

  3)Map、WeakMap、Set以及WeakSet类型

6.1 Object

  一、显式地创建Object的实例有两种方式:

  1)使用new Object

  2)使用字面量的方式

 

 

 二、属性的存取方式:

  1)点存取

  2)通过属性名存取,也可通过变量访问属性

 

 

 

 

 

 

通常,点语法是首选的属性存取方式,除非访问属性时必须使用变量。

注意 在使用对象字面量表示法定义对象时,并不会实际调用Object构造函数。

6.2 Array 

一、数组的创建方式:

  1)new Array

给构造函数Array传入一个数值,指明创建一个多长的数组;
给构造函数Array传入字符串,传几个就创建有几个元素的数组;

不传,创建一个空数组

 

 

在使用Array构造函数时,也可以省略new操作符。结果是一样的,比如:

  2)字面量方式

 

 

 

注意 与对象一样,在使用数组字面量表示法创建数组不会调用Array构造函数。

三、Array构造函数还有两个ES6新增的用于创建数组的静态方法:from()和of()。from()用于将类数组结构转换为数组实例,而of()用于将一组参数转换为数组实例。

  1)Array.from()的第一个参数是一个类数组对象,即任何可迭代的结构,或者有一个length属性和可索引元素的结构。这种方式可用于很多场合:

 

⚠️:

1)Array.from()方法对现有数组执行浅拷贝

 

 

posted @ 2021-12-22 17:52  妖妖未初  阅读(45)  评论(0编辑  收藏  举报