ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ECMASript 11新特性

2022-03-18 21:05:18  阅读:204  来源: 互联网

标签:11 const log max 特性 BigInt console girl ECMASript


ES11语法新特性

私有属性

class Person {
    //公有属性
    name;
    //私有属性
    #age;
    #weight;//构造方法
    constructor(name, age, weight) {
        this.name = name;
        this.#age = age;
        this.#weight = weight;
    }

    intro() {
        console.log(girl.name);
        console.log(girl.#age);
        console.log(girl.#weight);
    }
}
//实例化
const girl = new Person('小红', 18, '45kg');
// console.log(girl.name);
// console.log(girl.#age);
// console.log(girl.#weight);
//无法在类的外部直接调用
//Uncaught SyntaxError: Private field '#age' must be declared in an enclosing class

girl.intro();//可以通过内部方法进行调用

Promise.allSettled

//声明两个promise对象
const p1 = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('商品数据-1');
    }, 1000)
});
const p2 = new Promise((resolve, reject) => {
    setTimeout(() => {
        //resolve('商品数据-2');
        reject('出错啦!');
    }, 1000)
});

//调用  allsettled 方法
//可以检测所有对象的promise的成功和失败
// const result = Promise.allSettled([p1,p2]);

//全部成功才会返回成功的promise
const res = Promise.all([p1,p2])

console.log(res);

String.prototype.matchAll

let str =
    `<ul>
        <li>
            <a>肖生克的救赎</a>
            <p>上映日期:1994-09-10</p></li>
        <li>
            <a>阿甘正传</a>
            <p>上映日期:1994-07-06</p></li>

    </ul>`;

const reg = /<li>.*?<a>(.*?)<\/a>.*?<p>(.*?)<\/p>/sg;

//调用方法
//用来得到正则批量匹配的结果
const result = str.matchAll(reg);

// for( let v of result){
// console.log(v);
// }

const arr = [...result];
console.log(arr);

可选链操作符

    // const dbHost = config && config.db && config.db.host;
    //当检测前面参数传入以后再往后进行
    const dbHost = config?.db?.host;
    console. log(dbHost);
}
main({
    db: {
        host: ' 192.168.1.100', 
        username: 'root',
    },
    cache: {
        host: '192.168.1.200', 
        username: 'admin',
    }
})

动态import

在需要的时候再引入,可以减少运算

<body>
    <script src="./app.js" type="module"></script>
    <button id="btn">按钮</button>
</body>
// import * as mq from "./hello"
//获取元素
const btn = document.getElementById( 'btn' );

btn.onclick = function(){
    import( './hello' ).then(module => {
        module.hello();
        });
}
function hello() {
    alert(hello);
}

数据类型BigInt

//大整形
let n = 521n;
console.log(n, typeof (n));

let n2 = 123;
console.log(BigInt(n2));
//console.log(BigInt(3.1415926));//不支持浮点运算

//大数值运算
let max = Number.MAX_SAFE_INTEGER;
console.log(max);
console.log(max + 1);
console.log(max + 2);
console.log(BigInt(max))
console.log(BigInt(max) + BigInt(1));
console.log(BigInt(max) + BigInt(2))

特殊变量globalThis

支持JS和Node,js

无论执行环境是什么,始终都指向全局对象

标签:11,const,log,max,特性,BigInt,console,girl,ECMASript
来源: https://www.cnblogs.com/wzx-blog/p/16023551.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有