思维导图
1:date的简单使用
let date = new Date() // 获取当前的时间 年月日时分秒
获取时间
-
getTime() // 返回日期的毫秒表示;与 valueOf()相同
-
getFullYear() // 返回 4 位数年(即 2019 而不是 19)
-
getMonth() // 返回日期的月(0 表示 1 月,11 表示 12 月)
-
getDate() // 返回日期中的日(1~31)
-
getDay() // 返回日期中表示周几的数值(0 表示周日,6 表示周六)
-
getHours() // 返回日期中的时(0~23)
查询年月日时分秒、毫秒、周几(周)
设置年,月,日
-
setTime(milliseconds) // 设置日期的毫秒表示,从而修改整个日期
-
setFullYear(year) // 设置日期的年(year 必须是 4 位数)
-
setMonth(month) // 设置日期的月(month 为大于 0 的数值,大于 11 加年)
-
setDate(date) // 设置日期中的日(如果 date 大于该月天数,则加月)
-
setHours(hours) // 设置日期中的时(如果 hours 大于 23,则加日)
设置年月日时分秒、毫秒
案例一:设置年
let date = new Date() date.setFullYear(2019)
console.log(date) // Thu Aug 08 2019 15:48:10 GMT+0800 (China Standard Time)
案例二:获取年份和天数
let date1 = new Date(2019,1,1).getFullYear()
console.log(date1) // 返回四位数年
let date4 = new Date(2019,6,8).getDate()
console.log(date4) // 8 返回日期中的日(1~31)
2:正则表达式
语法:let expression = pattern/flags
pattern:可以是任何简单或复杂的正则表达式,包括字符类、限定符、 分组、向前查找和反向引用
flags:标记,每个正则表达式可以带零个或多个 flags(标记),用于控制正则表达式 的行为
标记内容:
-
g:全局模式,表示查找字符串的全部内容,而不是找到第一个匹配的内容就结束。
-
i:不区分大小写,表示在查找匹配时忽略 pattern 和字符串的大小写。
-
m:多行模式,表示查找到一行文本末尾时会继续查找。
-
y:粘附模式,表示只查找从 lastIndex 开始及之后的字符串。
-
u:Unicode 模式,启用 Unicode 匹配。
-
s:dotAll 模式,表示元字符.匹配任何字符(包括\n 或\r)。
案例:普通
let pattern1 = /at/g; // 匹配字符串中的所有"at"
let pattern2 = /[bc]at/i; // 匹配第一个"bat"或"cat",忽略大小写
元字符在正则表达式中需要转义:包括:( [ { \ ^ $ | ) ] } ? * + .
案例:转义
let pattern2 = /[bc]at/i; // 匹配第一个"[bc]at",忽略大小写
let pattern4 = /.at/gi; // 匹配所有".at",忽略大小写
方法:
exec() 返回一个数组,包含匹配的内容,位置,匹配对应的内容等 text() 返回一个boolean值,true和false,常用来作验证
知识点:
例如:
let text = "000-00-0000";
let pattern = /\d{3}-\d{2}-\d{4}/;
if (pattern.test(text)) {
console.log("The pattern was matched.");
}
返回字面量表达式
let pattern = new RegExp("\\[bc\\]at","gi") // 这个使用了转义字符
console.log(pattern) // /\[bc\]at/gi
RegExp自有属性
let text = "同志们加油啊,努力干,挣大钱。";
let pattern = /(.)努力干/g;
console.log(RegExp.input) // #toolbar-search-input
if(pattern.test(text)){
console.log(RegExp.input) // 同志们加油啊,努力干,挣大钱。
console.log(RegExp.leftContext) // 同志们加油啊
console.log(RegExp.rightContext) // ,挣大钱。
console.log(RegExp.lastMatch) // ,努力干
console.log(RegExp.lastParen) // ,
}
RegExp 构造函数的所有属性都没有任何 We b 标准出处,因此不要在生产环境中使 用它们。
3:原始值包装类型
为了方便操作原始值,ECMAScript 提供了 3 种特殊的引用类型:Boolean、Number 和 String
typeof 操作符对原始值返回"boolean",对引用值返回object let number1 = false // 原始值
let Object1 = new Boolean(false) // object
理解原始布尔值和 Boolean 对象之间的区别非常重要,强烈建议永远不要使用后者
4:isInteger()方法与安全整数
ES6 新增了 Number.isInteger()方法,用于辨别一个数值是否保存为整数。有时候,小数位的 0 可能会让人误以为数值是一个浮点值:
console.log(Number.isInteger(10)); // true
console.log(Number.isInteger(10.00)); // true
console.log(Number.isInteger(10.01)); // false
5:string方法
5.1 不常用:
-
charAt() // 根据下标查找元素
-
charCodeAt() // 根据下标查找元素对应的码元字符编码
-
chartPointAt() // 根据下标查找对应的码点
-
formCharCode() 和 formCodePoint() 对应的关系,查找字符串
5.2 常用 操作方法:
concat() 拼接 建议使用“+”来代替
截取字符串
-
slice() 接受两个参数,第一个参数表示开始截取的下标,第二个参数表示截取字符串结束的位置,传入的参数为负数有所不同
-
substring() 接受两个参数,第一个参数表示开始截取的下标,第二个参数表示截取字符串结束的位置,传入的参数为负数有所不同
-
substr() 接受两个参数,第一个参数表示开始截取的下标,第二个参数表示返回的子字符串的数量,传入的参数为负数有所不同
5.3 获取下标
根据传入的字符串获取下标
-
indexOf() 从开头往后查找传入的元素下标
-
lastIndexOf() 从尾部往前查找元素的下标
5.4 查找元素是否存在,返回boolean
startsWith() 从下标0开始查找,第二个参数表示开始搜索的位置
endsWith() 从尾部开始查找
includes 第二个参数表示开始搜索的位置
5.5 去除字符串前后空格,返回字符串的副本,原字符串不受影响
trim() 去除字符串前后空格
trimLeft() 去除字符串起始位置的空格
trimRighe() 去除字符串尾部的空格
5.6 复制字符串
repeat()
- 参数:接收一个整数,表示复制多少次
padStarts()
- 参数1:表示复制的长度,不足以空格填充,长度小于等于元字符串长度,返回原字符串
- 参数2(可选):填充的内容
padEnd()
- 参数1:表示复制的长度,不足以空格填充,长度小于等于元字符串长度,返回原字符串
- 参数2(可选):填充的内容
5.7 迭代与解构
iterator next() 字符串支持迭代,就可以在日常使用中使用解构方式,把字符串转为数组
5.8 search 查找元素位置,没有返回-1,有返回下标
这参数1:支持正则表达式
5.9 替换
replace()
参数1:需要替换的元素,如果是字符串,则只替换第一个查找到的;正则表达式的话,符合的就替换;
参数2:准备新的元素
6:Math
ECMASript提供了Math对象作为保存数学公式、信息和计算的地方,Math提供了一些辅助计算属性和方法;
获取数组中的最大值和最小值,使用解构方式
// 最大值
let arr = [2,4,6,26,8,9,1]
console.log(Math.max(...arr)) // 26
// 最小值
let arr = [2,4,6,26,8,9,1]
console.log(Math.min(...arr)) // 1
Math.random()生成随机数
0~数据长度,根据传入的值,获取下标,随机获取内容
let arr = ["red", "green", "blue", "yellow", "black", "purple", "brown"];
function selectFrom(lowerValue,upperValue){
let value = upperValue - lowerValue+1
return Math.floor(Math.random() * value + lowerValue)
}
let number = arr[selectFrom(0,arr.length - 1)]
console.log(number)
在学习《JavaScript高级程序设计(第4版)》时的简单笔记。