JavaScript集合引用类型——Map
基本API
使用 new 关键字和 Map 构造函数可以创建一个空映射;
如果想在创建的同时初始化实例,可以给 Map 构造函数传入一个可迭代对象,需要包含键/值对数组:
初始化之后,可以使用 set()方法再添加键/值对;
可以使用 get()和 has()进行查询;
可以通过 size 属性获取映射中的键/值对的数量;
可以使用 delete()和 clear()删除值;
12345678910111213141516171819202122232425// 使用嵌套数组初始化映射const m1 = new Map([ ["key1", "val1"], ["key2", "val2"], ["key3", "val3"] ]); alert(m1.size); // 3 const m = new Map(); alert(m.has("firstName")); // false alert(m.get(&quo ...
JavaScript——Math对象
Math 对象上提供的计算要比直接在JavaScript实现的快得多,因为Math对象上的计算使用了JavaScript引擎中更高效的实现和处理器指令
Math对象属性
min() 和 max()方法
min()和 max()方法用于确定一组数值中的最小值和最大值;
这两个方法都接收任意多个参数;
1234let max = Math.max(3, 54, 32, 16); console.log(max); // 54 let min = Math.min(3, 54, 32, 16); console.log(min); // 3
要知道数组中的最大值和最小值,可以像下面这样使用扩展操作符:
12let values = [1, 2, 3, 4, 5, 6, 7, 8]; let max = Math.max(...val);
舍入方法
123456789101112131415console.log(Math.ceil(25.9)); // 26 console.log(Math.ceil(25.5)); // 26 console.log(Math.ceil( ...
JavaScript——Global对象
特点
代码不会显式地访问它;
Global对象为一种兜底对象,它所针对的是不属于任何对象的属性和方法;
在全局作用域中定义的变量和函数都会变成 Global 对象的属性;
方法URL编码方式
12345let uri = "http://www.wrox.com/illegal value.js#start"; // "http://www.wrox.com/illegal%20value.js#start" console.log(encodeURI(uri)); // "http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.js%23start" console.log(encodeURIComponent(uri));
12345let uri = "http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.js%23start"; // http%3A%2F%2Fwww.wrox.com%2Fillegal value.js% ...
JavaScript字符串操作方法
字符串拼接方法
concat()用于将一个或多个字符串拼接成一个新字符串
1234let stringValue = "hello "; let result = stringValue.concat("world"); console.log(result); // "hello world" console.log(stringValue); // "hello"
可以接收任意多个参数,因此可以一次性拼接多个字符串;
1234let stringValue = "hello "; let result = stringValue.concat("world", "!"); console.log(result); // "hello world!" console.log(stringValue); // "hello"
从字符串中提取子字符串的方法
slice()、substr()和 subst ...
JavaScript集合引用类型——Array
创建数组① 使用 Array 构造函数
在使用 Array 构造函数时,也可以省略 new 操作符;
1let colors = new Array();
如果知道数组中元素的数量,那么可以给构造函数传入一个数值,然后 length 属性就会被自动创建并设置为这个值:
1let colors = new Array(15);
也可以给 Array 构造函数传入要保存的元素:
1let colors = new Array("red", "blue", "green");
② 使用数组字面量(array literal)表示法:123let colors = ["red", "blue", "green"]; // 创建一个包含 3 个元素的数组let names = []; // 创建一个空数组let values = [1,2,]; // 创建一个包含 2 个元素的数组
③ from()
from()用于将类数组结构转换为数组实例;
Array. ...
JavaScript学习笔记(十五)集合引用类型
Object
Object 的实例没有多少功能,但很适合存储和在应用程序间交换数据;
创建 Object 的实例有两种方式:
使用 new 操作符和 Object 构造函数;
使用对象字面量(object literal)表示法;
在对象字面量表示法中,属性名可以是字符串或数值,但数值属性会自动转换为字符串;
在使用对象字面量表示法定义对象时,并不会实际调用Object构造函数。
123456789//第一种let person = new Object(); person.name = "Nicholas"; person.age = 29;//第二种let person = { name: "Nicholas", age: 29 };
虽然属性一般是通过点语法来存取的,这也是面向对象语言的惯例,但也可以使用中括号来存取属性。
在使用中括号时,要在括号内使用属性名的字符串形式;
使用中括号的主要优势就是可以通过变量访问属性;
点语法是首选的属性存取方式,除非访问属性时必须使用变量;
ArrayMa ...
JavaScript学习笔记(十四)单例内置对象
定义:任何由 ECMAScript 实现提供、与宿主环境无关,并在 ECMAScript 程序开始执行时就存在的对象
这就意味着,开发者不用显式地实例化内置对象,因为它们已经实例化好了;
GlobalGlobal对象
MathMath对象
JavaScript学习笔记(十三)原始值包装类型
为了方便操作原始值,ECMAScript 提供了 3 种特殊的引用类型:Boolean、Number 和 String。
每当用到౼个原始值的方法或属性时,后台都会创建一个相应原始包装类型的对象,从而暴露出操作原始值的各种方法。
123456let s1 = "some text"; let s2 = s1.substring(2);//========以上代码实际运行步骤===========let s1 = new String("some text"); let s2 = s1.substring(2); s1 = null;
引用类型与原始值包装类型的主要区别在于对象的生命周期;
不能在运行时给原始值添加属性和方法;
Boolean
Boolean 是对应布尔值的引用类型;
要创建一个 Boolean 对象,就使用 Boolean 构造函数并传入true 或 false;
Boolean 的实例会重写 valueOf()方法,返回一个原始值 true 或 false;
toString()方法被调用时也会被覆盖,返回字符串”tr ...
JavaScript学习笔记(十二)RegExp
基础知识创建语法
正则表达式的 pattern(模式)可以是任何简单或复杂的正则表达式,包括字符类、限定符、分组、向前查找和反向引用;
每个正则表达式可以ࣛ带零个或多个 flags(标记),用于控制正则表达式的行为。
1let expression = /pattern/flages;
flags
作用
g
全局模式,表示查找字符串的全部内容,而不是找到第一个匹配的f内容就结束
i
不区分大小写,表示在查找匹配时忽略 pattern 和字符串的大小写
m
多行模式,表示查找到一行文本末尾时会继续查找
y
粘附模式,表示只查找从 lastIndex 开始及之后的字符串
u
Unicode 模式,启用 Unicode 匹配
s
dotAll 模式,表示元字符.匹配任何字符(包括\n 或\r)
元字符包括:( [ { \ ^ $ | ) ] } ? * + .
所有元字符在模式中也必须转义
12345678// 匹配第一个"bat"或"cat",忽略大小写let pattern1 = /[bc]at/i;// ...
JavaScript学习笔记(十一)Date
基本内容
ECMAScript 的 Date 类型参考了 Java 早期版本中的 java.util.Date。
Date 类型将日期保存为自协调世界时(UTC,Universal Time Coordinated)时间 1970 年 1 月 1 日午夜(零时)至今所经过的毫秒数。
使用这种存储格式,Date 类型可以精确表示 1970 年 1 月 1 日之前及之后 285616 年的日期。
创建
要创建日期对象,就使用 new 操作符来调用 Date 构造函数
在不给 Date 构造函数传参数的情况下,创建的对象将保存当前日期和时间;
1let now = new Date();
要基于其他日期和时间创建日期对象,必须传入其毫秒表示。
ECMAScript为此提供了两个辅助方法:Date.parse()和Date.UTC()
Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数。规则如下:
格式
结果
月/日/年
5/23/2021
月名 日,年
May 23,2021
周几 月名 日 年 时:分:秒 时 ...