1、字符串

1.1 获取字符串的对应下标数值

  1. const str = 'abc123ABC'
  2. console.log(str[1]) // 输出结果为:b
  3. console.log(str.chatAt(1)) // 输出结果为:b

1.2 获取字符串的长度

  1. const str = "123456"
  2. console.log(str.length) // 长度为:6

1.3 获取字符串的Unicode的编码

  1. const str = '中国'
  2. console.log(str.charCodeAt(0)) // unicode编码为:20013

如果不指定下标,默认获取0

1.4 Unicode的编码转字符串

  1. const arr = [25105, 29233, 20320]
  2. console.log(String.fromCharCode(arr[0], arr[1], arr[2])) // 输出结果为:我爱你

1.5 查找是否有对应字符串

  1. const str = 'layouwen = layouwen'
  2. console.log(str.indexOf('l')) // 找到返回下标 0
  3. console.log(str.indexOf('1', 4) // 从下标 4 开始查找 返回下标 11
  4. console.log(str.indexOf('s')) // 找不到返回 -1

1.6 从后往前查找最后一个索引

  1. const str = 'hello word'
  2. console.log(str.lastIndexOf('o')) // 7
  3. console.log(str.lastIndexOf('o', 8)) // 7
  4. console.log(str.lastIndexOf('o', 5)) // 4

1.7 截取字符串

  1. const str = '12345678'
  2. console.log(str.slice(0, -1)) // 从下标 0 开始,截取到倒数第一个字符串 之前
  3. // 1234567
  4. console.log(str.subString(1, str.length - 1)) // 234567

1.8 分割字符串为数组

  1. const str = 'la-you-wen'
  2. console.log(str.split()) // ['la-you-wen']
  3. console.log(str.split('-')) // ['la', 'you', 'wen']
  4. console.log(str.split('-', 1) // 只分割一个 ['la']

1.9 连接字符串

  1. const str1 = 'la'
  2. const str2 = 'you'
  3. const str3 = 'wen'
  4. console.log(str1.concat(str2, str3)) // layouwen

1.10 大小写转换

  1. const str1 = 'abc'
  2. const str2 = 'DEF'
  3. console.log(str1.toUpperCase()) // ABC
  4. console.log(str2.toLowerCase()) // def

1.11 去除首位空格

  1. const str = ' 123 4 '
  2. console.log(str.trim()) // 123 4

2、数组

2.1 末尾添加

  1. const arr = [1, 2, 3]
  2. console.log(arr.push(4, 5)) // 返回添加后数组的长度 结果为:5
  3. console.log(arr) // [1, 2, 3, 4, 5]

2.2 末尾删除

  1. const arr = [4, 6, 2]
  2. console.log(arr.pop()) // 返回删除的值 结果为:2
  3. console.log(arr) // [4, 6]

2.3 开头添加

  1. const arr = [4, 2, 3]
  2. console.log(arr.unshift(1)) // 返回添加后数组长度 结果为:4
  3. console.log(arr) // [1, 4, 2, 3]

2.4 开头删除

  1. const arr = [7, 5, 2]
  2. console.log(arr.shift()) // 返回删除的值 结果为:7
  3. console.log(arr) // [5, 2]

2.5 添加、删除、替换

  1. const arr1 = [1, 2, 3]
  2. arr1.splice(1, 0, 4, 5, 6)
  3. console.log(arr1) // [1, 4, 5, 6, 2, 3]
  4. const arr2 = [1, 2, 3]
  5. console.log(arr2.splice(1, 2)) // 从下标 1 开始,删除 2 个,并返回删除的内容 结果为:[2, 3]
  6. console.log(arr2) // [1]
  7. const arr3 = [1, 2, 3, 4]
  8. console.log(arr3.splice(1, 3, 'a', 'b', 'c')) // 从下标 1 开始,删除 3 个,然后添加 a b c 结果为: [2, 3, 4]
  9. console.log(arr3) // [1, 'a', 'b', 'c']

2.6 排序

  1. const arr = [1, 2, 6, 3, 5, 9, 0]
  2. arr.sort((a, b)=>a-b) // a - b 升序 b - a 是降序
  3. console.log(arr)

2.7 数组拼接

  1. const arr1 = [1, 2, 3]
  2. const arr2 = [4, 5, 6]
  3. const arr3 = ['a', 'b']
  4. console.log(arr1.concat(arr2, arr3)) // 返回拼接后的数组
  5. // [1, 2, 3, 4, 5, 6, "a", "b"]
  6. console.log(arr1) // [1, 2, 3]

2.8 数组转字符串

  1. const arr = ['hello', 'word', '你好']
  2. console.log(arr.join(',')) // 返回拼接后的字符串
  3. // hello,word,你好

2.9 数组反转

  1. const arr = [1, 2, 3, 7, 6, 5, 4, 0]
  2. console.log(arr.reverse()) // 返回颠倒后的数组
  3. // [0, 4, 5, 6, 7, 3, 2, 1]
  4. console.log(arr) // 原数组也会被改变 [0, 4, 5, 6, 7, 3, 2, 1]

2.10 从前往后查找数组时候存在值

  1. const arr = ['a', 'b', 'c', 'a', 'd']
  2. console.log(arr.indexOf('a', 3)) // 从下标 3 开始查找
  3. // 3
  4. console.log(arr.indexOf('a', -1)) // 从倒数第 1 个开始找
  5. // -1

2.11 从后往前查找数组时候存在值

  1. const arr = ['a', 'b', 'c', 'a', 'd']
  2. console.log(arr.lastIndexOf('a', 2)) // 从下标 2 开始向左查找
  3. // 0
  4. console.log(arr.lastIndexOf('a', -1)) // 从倒数第 1 个开始向左找
  5. // 3

2.12 数组切割

  1. const arr = ['a', 'b', 'c', 'a', 'd']
  2. console.log(arr.slice(1, 4)) // ['b', 'c', 'a']
  3. console.log(arr.slice(-3, 1)) // []
  4. console.log(arr.slice(-3, -1)) // ['c', 'a']
  5. console.log(arr) // ['a', 'b', 'c', 'a', 'd']

2.13 遍历数组

  1. const demoArr = ['a', 'b', 'c', 'a', 'd']
  2. const thisArr = ['我是改变this', '的数组']
  3. demoArr.forEach(function(value, index, arr){
  4. console.log(value, index, arr)
  5. console.log(this)
  6. },thisArr) // 改变回调中的 this 指向
  7. demoArr.forEach((value, index, arr)=>{ // 箭头函数因为本身没有 this 所以第二个参数无效
  8. console.log(value, index, arr)
  9. })

2.14 数组过滤

  1. const demoArr = ['a', 'b', 'c', 'a', 'd']
  2. const thisArr = ['我是改变this', '的数组']
  3. const newArr1 = demoArr.filter(function (value, index, arr) {
  4. console.log(value, index, arr)
  5. console.log(this)
  6. return value !== 'c' // 将所有为 true 的结果返回出去
  7. }, thisArr) // 改变回调中的 this 指向
  8. console.log('我是新数组:')
  9. console.log(newArr1) // ["a", "b", "a", "d"]
  10. console.log('我是原数组:')
  11. console.log(demoArr) // ["a", "b", "c", "a", "d"]
  12. const newArr2 = demoArr.filter((value, index, arr) => {
  13. // 箭头函数因为本身没有 this 所以第二个参数无效
  14. console.log(value, index, arr)
  15. return value === 'c'
  16. })
  17. console.log(newArr2) // ['c']

2.15 数组加工

  1. const demoArr = ['a', 'b', 'c', 'a', 'd']
  2. const thisArr = ['我是改变this', '的数组']
  3. const newArr = demoArr.map((item, index, arr) => {
  4. console.log(item, index, arr)
  5. return (item += '嗯?') // 将结果添加到新的数组中,返回出去
  6. })
  7. console.log(newArr) // ["a嗯?", "b嗯?", "c嗯?", "a嗯?", "d嗯?"]
  8. console.log(demoArr) // ["a", "b", "c", "a", "d"]
  9. demoArr.map(function (item, index, arr) {
  10. console.log(this) // ['我是改变this', '的数组']
  11. }, thisArr)

2.16 数据集合加工

  1. const demoArr = [10, 10, 10, 10]
  2. const result = demoArr.reduce((sum, value, index) => { // sum 上一次的结果
  3. return sum + value
  4. }, 1000) // 初始值,如果不传默认为数组第一位
  5. console.log(result) // 1040

2.17 某一个为真返回真

  1. const falsyArr1 = [false, 1, 0, 0]
  2. const falsyArr2 = [false, undefined, 0, 0]
  3. const status1 = falsyArr1.some((value, index, arr) => {
  4. console.log(value, index, arr)
  5. return value // 只要有一个为 真值 则返回 true,否则返回 false
  6. })
  7. const status2 = falsyArr2.some(value => value)
  8. console.log(status1, status2) // true false

2.18 所有为真才返回真

  1. const falsyArr1 = [1, 1, true, 0]
  2. const falsyArr2 = ['a', true, 1, 1]
  3. const status1 = falsyArr1.every((value, index, arr) => {
  4. console.log(value, index, arr)
  5. return value // 全部都为 真值 则返回 true,否则返回 false
  6. })
  7. const status2 = falsyArr2.every(value => value)
  8. console.log(status1, status2) // false true

3、对象

3.1 获取所有key值

  1. const obj = {
  2. name: 'layouwen',
  3. age: '21'
  4. }
  5. console.log(Object.keys(obj)) // ["name", "age"]

3.2 获取所有value值

  1. const obj = {
  2. name: 'layouwen',
  3. age: '21'
  4. }
  5. console.log(Object.values(obj)) // ["layouwen", "21"]

3.3 删除某一项键值对

  1. const obj = {
  2. name: 'layouwen',
  3. age: '21'
  4. }
  5. delete obj.age // 连带键值对删除
  6. console.log(obj) // {name: "layouwen"}

4、JSON

4.1 转JSON

  1. const obj = {
  2. name: 'layouwen',
  3. age: 21
  4. }
  5. console.log(JSON.stringify(obj)) // {"name":"layouwen","age":21}

4.2 转实例

  1. const objJSON = '{"name": "yqq", "age": 30}'
  2. console.log(JSON.parse(objJSON)) // {name: "yqq", age: 30}

字符串中的 key 必须用 双引号

5、Math

5.1 圆周率

  1. console.log(Math.PI) // 3.141592653589793

5.2 取整

5.2.1 向上取整

  1. console.log(Math.ceil(1.3)) // 2

5.2.2 向下取整

  1. console.log(Math.floor(1.3)) // 1

5.2.3 四舍五入

  1. console.log(Math.round(1.4)) // 1
  2. console.log(Math.round(1.5)) // 2

5.3 随机数

  1. console.log(Math.random()) // 随机 0 - 1 之间的数字

5.4 最大值

  1. console.log(Math.max(5, -1, 9, 4)) // 9
  2. const arr = [4, 3, 2, 8, 5]
  3. console.log(Math.max(...arr)) // 8

5.5 最小值

  1. console.log(Math.min(5, -1, 9, 4)) // -1
  2. const arr = [4, 3, 2, 8, 5]
  3. console.log(Math.min(...arr)) // 2

5.6 绝对值

  1. console.log(Math.abs(-10))
  2. // 10