JavaScript 学习笔记

本文最后更新于 2025年8月14日 星期四 10:51

红书指:JavaScript 高级程序设计(第 4 版), 2020 年 9 月第 2 版, 第 10 次印刷, 978-7-115-54538-1。

基本引用类型

Date

完整方法见红书 P106。

1
2
3
4
5
6
7
8
9
//因浏览器而异
let now = new Date(); // Mon Jan 16 2023 22:57:48 GMT+0800 (中国标准时间)
console.log(now.toDateString()); //Mon Jan 16 2023
console.log(now.toTimeString()); //23:02:43 GMT+0800 (中国标准时间)
console.log(now.toLocaleDateString()); //2023/1/16
console.log(now.toLocaleTimeString()); //23:02:43
console.log(now.toUTCString()); //Mon, 16 Jan 2023 15:02:43 GMT

let now = Date.now(); //毫秒数

RegExp

  • g:查找全部内容,而不是找到第一个匹配结束。
  • i:忽略大小写。
  • m:多行模式。
  • y:粘附模式,只从 lastIndex 开始查找。
  • u:Unicode 模式。
  • s:匹配任何字符,包括\nr
1
2
3
let text = "some text here";
let pattern = /pattern/gimsuy;
let matches = pattern.exec(text);

matches 属性:index input

pattern 属性:lastIndex

RegExp 属性

(无 Web 标准,不要在生产环境使用)

全名 简写 说明
.input .$_
.lastMatch [$&]
.lastParen [$+] 最后匹配的捕获组(非标准特性)
.leftContext [$`]
.rightContext [$']

原始值包装类型

1
2
3
4
5
6
7
let v = 2;
let n = +v; //number,转型函数
let m = new Number(v); //object,构造函数

console.log(n.toFixed(2)); //"2.00"
console.log(n.toExponential(2)); //"2.00e+0"
console.log(n.toPrecision(2)); //有效数字

数据类型

Number

1
2
parseInt("123", 按几进制解析);
parseFloat("123");

字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
s.toUpperCase(); // 字符串全部变为大写
s.toLowerCase(); // 字符串全部变为小写

s.indexOf(""); // 返回子串出现的位置

s.substring(0, 3); // [0, 3)
s.substring(3); // [3, 串结束)

String.raw.raw; //不转义标签函数 //属性取得每个字符串的原始内容

//模板字面量标签函数
let a = 6;
let b = 9;
function simpleTag(strings, ...expressions) {
console.log(strings);
for (const expression of expressions) {
console.log(expression);
}
return "foobar";
}
let taggedResult = simpleTag`${a} + ${b} = ${a + b}`;
// ["", " + ", " = ", ""]
// 6
// 9
// 15
console.log(taggedResult); // "foobar"

//等同于无zipTag
function zipTag(strings, ...expressions) {
return (
strings[0] + expressions.map((e, i) => `${e}${strings[i + 1]}`).join("")
);
}
let taggedResult = zipTag`${a} + ${b} = ${a + b}`;
console.log(taggedResult); // "6 + 9 = 15"

数组

1
2
3
4
5
a.indexOf(10); // 返回元素下标

a.slice(0, 3); // [0, 3)
a.slice(3); // [3, 数组结束)
a.slice(); // 复制

push() 向末尾添加,pop() 删除末尾。 unshift() 向头部添加,shift() 删除头部。

1
2
3
4
5
6
a.splice(1, 3); // 从1开始删除3个元素,
a.splice(1, 3, ..., 'A', 'B'); // 从1开始删除3个元素,然后再添加2个元素
a.splice(1, 0, ..., 'A', 'B'); // 在1添加2个元素

a.concat(1,[2, 3]); // 连接
//注意,concat()并没有修改当前数组,而是返回了一个新数组

join()

1
2
let arr = ["A", "B", "C", 1, 2, 3];
arr.join("-"); // 'A-B-C-1-2-3'

排序后输出

1
2
let arr = ["A", "B", "C", "D"];
console.log(`${arr.sort().slice(0, arr.length).join(",")}`);

JavaScript 学习笔记
https://blog.gtbcamp.cn/article/javascript/
作者
Great Thunder Brother
发布于
2022年12月20日
更新于
2025年8月14日
许可协议