1.处理字符串相关方法
let str = "I love JS";
str.includes("I"); // --> true 字符串中是否包含该字符。
str.startsWith("I") // --> true 字符串是否以I开头
str.endsWith("JS")// --> true 字符串是否以JS结尾
str.repeat(3) // 字符串重复三次 返回新字符串
str.padStart(10,'0'); // 字符串的长度最少为两位,不够的话在字符串的前面加0 返回新字符串
2.数组的扩展方法
find
let arr = [1,2,3]; // find方法 用于找出第一个符合条件的数组成员,并返回。参数为一个回调函数,所有数组成员依次执行该回调,直到找出第一个返回值为true的成员并返回,如果没有符合条件的成员则返回undefined. arr.find(num=>num===1); // ->1 arr.find(num=>num>1); // ->2
findIndex
let arr = [1,2,3]; // findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。 arr.findIndex((value,index,arr)=>value>2); // ->2 // 与find方法的区别是,此方法返回的是下标,而find方法返回的是元素本身。
Array.from
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
// Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。还可以接受第二个参数(一个函数),作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。
Array.of
Array.of(12,34,32)//把括号内的参数转换为数组。 // 如果不传参数,返回空数组。
some
let arr = [1,2,3]; arr.some(item=>item>2); // 如果数组内有一个符合结果就返回true,
every
let arr = [1,2,3]; arr.every(item=>item>2); // 如果数组内都符合结果就返回true,
includes
let arr = [1,2,3]; arr.includes(2); // arr.includes方法返回一个布尔值,表示某个数组是否包含给定的值, //该方法的第二个参数表示搜索的起始位置,默认为0。如果第二个参数为负数,则表示倒数的位置, //如果这时它大于数组长度(比如第二个参数为-4,但数组长度为3),则会重置为从0开始。
对象的扩展方法
Object.is
Object.is(NaN,NaN) // ->true 返回值为布尔值,判断两个值是否全等 Object.is(undefined,null) // ->false Object.is(null,null) // ->true
可选链调用
let nestedProp = obj&&obj.first&&obj.first.second; // 旧语法 let nestedProp = obj?.first?.second; // 新语法
空位合并操作符
let c = a !== undefined && a !== null ? a : b; // 旧语法 let c = a ?? b; // 新语法 // 用??表示,如果表达式??左侧的值为undefined或者null,则返回右侧的内容,否则返回左侧的内容
Promise.allSettled
解决Promise.all任意一个promise为reject整个promise立刻终止的问题。
BigInt
JS第7个原始类型,可安全的进行大数整型计算,解决了js大数精准度丢失的问题。BigInt类型和Number类型不能相加,只能比较。
const aBigInt = BigInt(1234324); typeof aBigInt === 'bigint'; // true
globalThis
解决全局对象的兼容问题,浏览器上为window,node环境为global。不需要考虑不同环境的问题。



