ES6+新增方法

74 阅读5分钟

数值方法

es6支持二进制和八进制

  • 二进制写法:0bXXX
  • 八进制写法:0oXXX
  • 十六进制写法:0xXXX

Math方法

  • Math.trunc():将小数部分抹掉,返回一个整数。仅仅是删除掉数字的小数部分和小数点,不管参数是正数还是负数。
  • Math.sign():返回一个数字的符号,指示数字是正数,负数还是零。共有 5 种返回值,分别是1, -1, 0, -0, NaN,代表的各是正数,负数,正零,负零,NaN

数组方法

Array.from

从可迭代或类数组对象创建一个新的浅拷贝的数组实例

//类数组对象  arguments   
function test(){
    // console.log(arguments.filter); // undefined 因为arguments并不是数组,所以无法使用数组内置函数
    console.log(Array.from(arguments)); // [1,2,3,4]  数组对象,可以使用Array的内置函数
}

//类数组对象 NodeList
let olis = documents.querySelectorAll("li");
Array.form(olis).map(function(){
    
})

find() / findIndex() / findLast() / findLastIndex()

find() / findLast() —— 返回arr[x]

findIndex() / findLastIndex() —— 返回x

let arr = [11,12,13,14,15,16]

let res = arr.find(function(item){
    return item > 13
})
console.log(res) // 14

let res2 = arr.find(function(item){
    return item > 13
})
console.log(res2) // 3

fill

fill(value, start, end)

  • value:用来填充数组元素的值。注意所有数组中的元素都将是这个确定的值:如果 value 是个对象,那么数组的每一项都会引用这个元素。
  • start:可选,基于零的索引,从此开始填充,转换为整数。
    • 负数索引从数组的末端开始计算,如果 start < 0,则使用 start + array.length
    • 如果 start < -array.length 或 start 被省略,则使用 0
    • 如果 start >= array.length,没有索引被填充。
  • end:可选,基于零的索引,在此结束填充,转换为整数。fill() 填充到但不包含 end 索引。
    • 负数索引从数组的末端开始计算,如果 end < 0,则使用 end + array.length
    • 如果 end < -array.length,则使用 0
    • 如果end >= array.lengthend被省略,则使用array.length,导致所有索引都被填充。
    • 如果经标准化后,end 的位置在 start 之前或之上,没有索引被填充。
let arr = new Array(3).fill("12");

let arr1 = [11,23,45];
console.log(arr1.fill("kerwin",0,1));

flat() / flatMap()

创建一个新的数组,并根据指定深度递归地将所有子数组元素拼接到新的数组中

  • flat(depth)
    • depth:指定要提取嵌套数组的结构深度,默认值为 1。
let arr1 = [1,2,3,[4,5,6,[8,7,6]]]

let arr2 = [[1,2,3,4],[3,4,5,6]]

let arr3 = [{
    name:'A',
    list:[11,22,33]
},{
    name:'B',
    list:[44,55,66]
}]
let res2 = arr3.flatMap(function(item){
    return item.list
})

console.log(arr1.flat());
console.log(arr1.flat(2));
console.log(arr2.flat());
console.log(res2);

image.png

字符串方法

  • includes函数:判断字符串中是否存在指定字符

    • includes(searchvalue, start)
      • searchvalue —— 必需,要查找的字符串
      • start —— 可选,设置从那个位置开始查找,默认为 0。
  • startsWith函数:检测字符串是否以指定的子字符串开始

    • startsWith(searchvalue, start)
      • searchvalue —— 必需,要查找的字符串
      • start —— 可选,设置从那个位置开始查找,默认为 0。
  • endsWith函数:判断字符串是否以指定的字符或子字符串结尾

    • endsWith(searchvalue, length)
      • searchvalue —— 必需,要查找的字符串
      • length —— 置字符串的长度。默认值为原始字符串长度 string.length
  • repeat函数:字符串复制指定次数

  • slice函数:提取字符串的片段,并在新的字符串中返回被提取的部分

    • slice(start,end)
      • start —— 必须。要抽取的片段的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取
      • end —— 可选。紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)
  • substring函数:提取字符串中介于两个指定下标之间的字符,返回的子串包括开始处的字符,但不包括结束处的字符

    • substring(from, to)
      • from —— 必需。一个非负的整数,规定要提取的子串的第一个字符在 string Object 中的位置
      • to —— 可选。一个非负的整数,比要提取的子串的最后一个字符在 string Object 中的位置多 1。 如果省略该参数,那么返回的子串会一直到字符串的结尾。
  • substr函数:在字符串中抽取从开始下标开始的指定数目的字符

    • substr(start,length)
      • start —— 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
      • length —— 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
  • split函数:把一个字符串分割成字符串数组

    • split(separator,limit)
      • separator —— 可选。字符串或正则表达式,从该参数指定的地方分割 string Object
      • limit —— 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

对象方法

Object.is()

console.log(Object.is(5,5));     // true
console.log(Object.is(5,"5"));   // false
console.log(Object.is({},{}));   // fales 
console.log(Object.is(NaN,NaN)); // true
console.log(Object.is(+0,-0));   // false
console.log(+0 === -0);          // true