ES6至ES11(二)

十三 Set集合 可以去重

size 个数
add 添加
delete 删除
has 检测
clear 清空

let arr = [1,5,2,6,4,2,5,6,9,4,3,7,8]
// 数组去重
let result = [...new Set(arr)]
// 交集 既在a也在b
let arr2 = [5,6,5,4,3,5]
let result = [...new Set(arr)].filter(item=>new Set(arr2).has(item));
// 并集 合并之后的结果
let union = [...new Set([...arr,...arr2])];
// 差集
let diff = [...new Set(arr)].filter(item=>!(new Set(arr2).has(item)));

十四 map

size 大小
set 添加
get 获取
has 检测
clear 清空
delete 删除

十五 class 类

class 声明类
constructor 定义构造函数初始化
extends 继承父类
super 调用父级构造方法
static 定义静态方法和属性
父类方法可以重写

十六 数值扩展

Number.EPSTION // 是js表示得最小精度 用于浮点数运算
function equal(a,b){
    if(Math.abs(a-b) < Number.EPSTION>){
        return true;
    }else{
        return false;
    }
}
console.log(equal(0.1+0.2 === 0.3))

二进制和八进制

let b = 0b1010; 二进制
let 0 = 0o777; 八进制
let d = 100; 十进制
let x = 0xff; 十六进制
Number.isFinite //检测一个数值是否为有限数
Number.isNaN //检测一个数值是否为 NaN
Number.parseInt//(把字符串 [ 参数 string 的值] 解析成整数) Number.parseFloat(把一个字符串解析成浮点数)
Number.isInteger //判断一个数是否为整数
Math.trunc //将数字的小数部分抹掉
Math.sign //判断一个数是正数/负数/零

十七 对象方法扩展

Object.is 判断两个值是否完全相等
Object.assign 对象合并
Object.setPrototypeof 设置原型对象
Object.getPrototypeof 获取原型对象

十八 模块化

优势:
防止命名冲突
代码复用
高维护性
babel 的使用
安装工具 babel-cli babel-preset-env browserify(webpack)

十九 ES7 includes

const ary = [1,2,3,4,5,6]
console.log(ary.includes(1))
// 幂运算
console.log(2**10)// 2的十次方

二十 ES8 async和await

async函数返回值为promise对象
promise对象的结果由async函数执行的返回值决定
await要放在async函数中

const p = new Promise((resolve,reject)=>{
    resolve('成功的值')
})
async function main(){
    try{
        let result = await p;
        console.log(result)
    }catch(e){
        console.log(e)
    }
    
}
main()

二十一 ES6 对象 rest参数和扩展运算符

function connect({host,port,...user}){
    console.log(host,port,user)
}
connect({
    hsot:'127.0.0.1',
    port:3306,
    username:'root',
    password:'123456'
})
// 扩展运算符,将四个对象属性放到一个对象里
const name1 = {a:'admin'}
const name2 = {b:'jack'}
const name3 = {c:'tom'}
const name4 = {d:'lisa'}
const username = {...name1,...name2,...name3,...name4}

二十二 ES9 正则扩展

声明一个字符串

let str = '<a href="hhtp://www.baidu.com">百度</a>'
const reg = /<a href="(?<url>.*)">(?<text>.*)</a>/
const result = reg.exec(str)
console.log(result.groups.url,result.groups.text)

// dot . 元字符 除换行符以外的任意单个字符

二十三 ES10 Object.fromEntries

// 二维数组 将二维数组转为对象

const result = Object.fromEntries([
    ['name','tom'],
    ['age','12,16,13']
])

二十四 ES10 trimStart trimEnd 清除字符串左侧和右侧空白

二十五 flat flatMap

// flat 将多维数组转为低维数组 接收数字为深度  默认值是1
const arr [1,2,3,[5,6]]
console.log(arr.flat()); // 将二维转为一维
// flatMap 相当于flat和map的结合,将结果flat
const arr [1,2,3,4]
const res = arr.flatMap(item=>[item*10])
console.log(res)

二十六 Symbol.prototype.description

let s = Symbol('admin')
console.log(s.description) // 通过 description 可以得到该字符串

二十七 ES11 私有属性

class Person{
    name;
    #age;
    constructor(name,age){
        this.name = name;
        this.#age = age
    }
}
const user = new Person('tom',18)
console.log(user.name,user.#age) // 报错

二十八 可选链操作符 ?.

function main(config){
    // 两者相等 使用 ?. 的时候即使不传递参数也不会报错
    const res = config && config.db
    const res = config?.db;
}

二十九 BigInt 大整型 用于大数值运算

let n = 215n
console.log(typeof(n))

三十 globalThis 始终指向全局对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值