思维导图
 
  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版)》时的简单笔记。


















