跳转到内容
新建笔记

标准对象

知识点分类说明代码示例
Date对象用于表示和操作日期和时间let now = new Date();
获取当前时间获取系统当前时间let now = new Date();
获取年份获取当前年份now.getFullYear();
获取月份获取当前月份,月份从0开始now.getMonth();
获取日期获取当前日期now.getDate();
获取星期获取当前是星期几now.getDay();
获取小时获取当前小时(24小时制)now.getHours();
获取分钟获取当前分钟now.getMinutes();
获取秒获取当前秒now.getSeconds();
获取毫秒数获取当前毫秒数now.getMilliseconds();
获取时间戳获取当前时间的时间戳now.getTime();
创建指定日期时间创建一个指定日期和时间的Date对象let d = new Date(2015, 5, 19, 20, 15, 30, 123);
ISO 8601字符串解析解析ISO 8601格式的日期时间字符串let d = Date.parse('2015-06-24T19:49:22.875+08:00');
时区处理显示本地时间或UTC时间d.toLocaleString();, d.toUTCString();
时间戳转换将时间戳转换为Date对象let d = new Date(1435146562875);
当前时间戳获取获取当前时间的时间戳Date.now(); 或 new Date().getTime();
let now = new Date();
now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
now.getFullYear(); // 2015, 年份
now.getMonth(); // 5, 月份,注意月份范围是0~11,5表示六月
now.getDate(); // 24, 表示24号
now.getDay(); // 3, 表示星期三
now.getHours(); // 19, 24小时制
now.getMinutes(); // 49, 分钟
now.getSeconds(); // 22, 秒
now.getMilliseconds(); // 875, 毫秒数
now.getTime(); // 1435146562875, 以number形式表示的时间戳
// JavaScript的Date对象月份值从0开始,牢记0=1月,1=2月,2=3月,……,11=12月。
// 使用Date.parse()时传入的字符串使用实际月份01~12,转换为Date对象后getMonth()获取的月份值为0~11。
let d = Date.parse('2015-06-24T19:49:22.875+08:00');
console.log(d); // 1435146562875
let d = new Date(1435146562875);
d; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
d.getMonth(); // 5

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。

知识点分类说明代码示例
正则表达式用于匹配字符串中字符组合-
创建正则表达式直接量或RegExp构造函数/ABC\-001/ 或 new RegExp('ABC\\-001');
测试匹配测试字符串是否符合正则表达式re.test('010-12345');
切分字符串使用正则表达式切分字符串'a b c'.split(/\s+/);
分组提取匹配字符串中的子串re.exec('010-12345');
贪婪匹配默认匹配尽可能多的字符re.exec('102300');
全局搜索进行全局匹配,多次搜索let r1 = /test/g;
特殊标志忽略大小写(i)、多行匹配(m)let r2 = new RegExp('test', 'gi');

基于everything的正则化语法

语法说明代码示例
a|b匹配 “a” 或 “b”用于选择,例如 /a|b/ 可以匹配 “apple” 中的 “a” 或 “rabbit” 中的 “b”。
gr(a|e)y匹配 “gray” 或 “grey”使用括号进行组合,例如 /gr(a|e)y/ 可以匹配 “grey” 和 “gray”。
.匹配任一字符点号代表任意字符,例如 /a.b/ 可以匹配 “abb”, “axb” 等。
[abc]匹配任一字符:“a” 或 “b” 或 “c”字符集,例如 /[abc]/ 可以匹配 “a”, “b”, 或 “c”。
[^abc]匹配任一字符,但不包括 “a”, “b”, “c”否定字符集,例如 /[^abc]/ 可以匹配除了 “a”, “b”, “c” 之外的任何字符。
[a-z]匹配从 “a” 到 “z” 之间的任一字符范围匹配,例如 /[a-z]/ 可以匹配任何小写字母。
[a-zA-Z]匹配从 “a” 到 “z”, 及从 “A” 到 “Z” 之间的任一字符范围匹配,例如 /[a-zA-Z]/ 可以匹配任何字母。
^匹配文件名的头部行的开始,例如 /^The/ 可以匹配以 “The” 开头的字符串。
$匹配文件名的尾部行的结束,例如 /end$/ 可以匹配以 “end” 结尾的字符串。
( )匹配标记的子表达式分组,例如 /(\w+) (\w+)/ 可以匹配两个单词,如 “John Doe”。
\n匹配第 nth 个标记的子表达式, nth 代表 1 到 9反向引用,例如 /(\w+) \1/ 可以匹配两个相同的单词。
\b匹配字词边界边界匹配,例如 /\bthe\b/ 可以匹配 “the” 但不匹配 “there”。
*匹配前一项内容 0 或多次贪婪量词,例如 /a*/ 可以匹配 “aaa” 或 “a” 或空字符串。
?匹配前一项内容 0 或 1 次懒惰量词,例如 /colou?r/ 可以匹配 “color” 或 “colour”。
+匹配前一项内容 1 或多次贪婪量词,例如 /a+/ 至少匹配一个 “a”。
*?匹配前一项内容 0 或多次 (懒惰模式)非贪婪量词,例如 /a*?b/ 会尽可能少地匹配 “a”,直到遇到 “b”。
+?匹配前一项内容 1 或多次 (懒惰模式)非贪婪量词,例如 /a+?b/ 会尽可能少地匹配 “a”,直到遇到 “b”。
{x}匹配前一项内容 x 次固定次数,例如 /a{3}/ 精确匹配三个 “a”。
{x,}匹配前一项内容 x 或多次最小次数,例如 /a{2,}/ 至少匹配两个 “a”。
{x,y}匹配前一项内容次数介于 x 和 y 之间范围次数,例如 /a{2,3}/ 匹配两个或三个 “a”。
\特殊转义字符转义特殊字符或表示特殊序列,例如 /\./ 匹配点号 ”.”。

正则化中的括号的使用

符号说明用途代码示例
()分组和捕获将多个表达式组合成一个单元,并且可以捕获匹配的文本(ab) 匹配 “ab” 并捕获它作为一个分组,`(ab)` 匹配 “a” 或 “b” 并捕获匹配的项。
[]字符集匹配括号内的任意一个字符[abc] 匹配 “a”、“b” 或 “c” 中的任意一个字符,[A-Z] 匹配任何大写字母。
{}量词指定前面的元素出现的次数{3} 表示前面的元素恰好出现三次,{3,} 表示至少出现三次,{2,5} 表示出现次数在2到5次之间。

1)分组和捕获:

let regex = /(\d{4})-(\d{2})-(\d{2})/;
let result = regex.exec('2024-08-10');
console.log(result[1]); // 输出年份 2024
console.log(result[2]); // 输出月份 08
console.log(result[3]); // 输出日期 10

2)字符集:

let regex = /[abc]/;
console.log('acb'.match(regex)); // 输出 ['a']
console.log('xyz'.match(regex)); // 输出 null,因为没有匹配项

3)量词:

let regex = /a{3}/;
console.log('aaaa'.match(regex)); // 输出 'aaa'
console.log('aa'.match(regex)); // 输出 null,因为 'a' 没有恰好出现三次
regex = /a{3,}/;
console.log('aaaa'.match(regex)); // 输出 'aaaa','a' 出现四次,至少三次
regex = /a{2,5}/;
console.log('aaaaa'.match(regex)); // 输出 'aaaaa','a' 出现五次,介于2到5次之间

JSON还定死了字符集必须是UTF-8,表示多语言就没有问题了。为了统一解析,JSON的字符串规定必须用双引号"",Object的键也必须用双引号""。是JavaScript的一个子集。把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串,这样才能够通过网络传递给其他计算机。如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScript对象,就可以在JavaScript中直接使用这个对象了。

数据类型说明JSON代码示例JavaScript代码示例
number表示数字,与JavaScript中的数字类型一致123, -45.67, 4.89e-2let num = 123;
boolean表示逻辑实体,只有两个值:true 或 falsetrue, falselet isApproved = true;
string表示字符串,用双引号括起来"Hello, world!", "JSON"let message = "Hello, world!";
null表示空值或无值nulllet noValue = null;
array表示数组,用方括号括起来,可以包含多种类型的数据[1, 2, "three", null, true]let array = [1, 2, "three", null, true];
object表示对象,用花括号括起来,包含零个或多个键值对{"name": "John", "age": 30, "isStudent": false}let person = {name: "John", age: 30, isStudent: false};
知识点分类说明代码示例
JSON轻量级的数据交换格式-
序列化将JavaScript对象转换为JSON字符串JSON.stringify(xiaoming);
格式化序列化格式化输出JSON字符串JSON.stringify(xiaoming, null, ' ');
筛选序列化序列化指定属性JSON.stringify(xiaoming, ['name', 'skills'], ' ');
自定义序列化通过函数自定义序列化过程JSON.stringify(xiaoming, convert, ' ');
toJSON方法定义对象的自定义序列化行为xiaoming.toJSON();
反序列化将JSON字符串转换为JavaScript对象JSON.parse('{"name":"小明","age":14}');
自定义反序列化通过函数自定义反序列化过程JSON.parse('{"name":"小明","age":14}', function(key, value) {...});