普歌-飞灵团队-ES7、8新特性汇总

~喜欢 的小伙伴点个赞收藏下呗,谢谢♥~

ES7

一、Array.prototype.includes

Includes 方法用来检测数组中是否包含某个元素,返回布尔类型值

const beauty = ['王昭君','貂蝉','杨玉环','西施'];

//判断
console.log(beauty.includes('貂蝉')); // true
console.log(beauty.includes('妲己')); // false

二、指数操作符

ES7 中引入指数运算符「**」,用来实现幂运算,功能与 Math.pow 结果相同

console.log(2 ** 10); // 1024
console.log(Math.pow(2, 10)); // 1024

ES8

一、async 和 await

async 和 await 两种语法结合可以让异步代码像同步代码一样

  1. async 函数的返回值为 promise 对象,promise 对象的结果由 async 函数执行的返回值决定
  2. await 必须写在 async 函数中,async函数里可以没有await
  3. await 右侧的表达式一般为 promise 对象
  4. await 返回的是 promise 成功的值
  5. await 的 promise 失败了, 就会抛出异常, 需要通过 try…catch 捕获处理
//创建 promise 对象
const p = new Promise((resolve, reject) => {
    // resolve("用户数据");
    reject("gg啦!");
})

// await 要放在 async 函数中.
async function main() {
    try {
        let result = await p;
        console.log(result);
    } catch (e) {
        console.log(e);
    }
}

//调用函数
main();

async与await封装AJAX请求

        // 发送 AJAX 请求, 返回的结果是 Promise 对象
        function sendAJAX(url) {
            return new Promise((resolve, reject) => {
                //1. 创建对象
                const x = new XMLHttpRequest();

                //2. 初始化
                x.open('GET', url);

                //3. 发送
                x.send();

                //4. 事件绑定
                x.onreadystatechange = function () {
                    if (x.readyState === 4) {
                        if (x.status >= 200 && x.status < 300) {
                            //成功啦
                            resolve(x.response);
                        }else{
                            //如果失败
                            reject(x.status);
                        }
                    }
                }
            })
        }
    
        //promise then 方法测试
        // sendAJAX("https://api.apiopen.top/getJoke").then(value=>{
        //     console.log(value);
        // }, reason=>{})
  
        // async 与 await 测试  axios
        async function main(){
            //发送 AJAX 请求
            let result = await sendAJAX("https://api.apiopen.top/getJoke");
            //再次测试
            let tianqi = await sendAJAX('https://www.tianqiapi.com/api/?version=v1&city=%E5%8C%97%E4%BA%AC&appid=23941491&appsecret=TXoD5e8P')

            console.log(tianqi);
        }

        main();

二、对象方法扩展

  1. Object.values()方法返回一个给定对象的所有可枚举属性值的数组
// 声明对象
const company = {
    name: "字节跳动",
    cities: ['北京', '上海', '深圳'],
    product: ['今日头条', '抖音', '皮皮虾', '懂车帝']
};

// 获取对象所有的键
console.log(Object.keys(company));
// 获取对象所有的值
console.log(Object.values(company));

values()方法效果图

  1. Object.entries()方法返回一个给定对象自身可遍历属性 [key,value] 的数组,每个成员也是一个数组
// entries
console.log(Object.entries(company));
// 创建 Map
const m = new Map(Object.entries(company));
console.log(m);
console.log(m.get('cities'));

entries()方法效果图

  1. Object.getOwnPropertyDescriptors方法返回指定对象所有自身属性的描述对象
// 对象属性的描述对象
console.log(Object.getOwnPropertyDescriptors(company));

getOwnPropertyDescriptors方法效果图
有什么问题欢迎大家在评论区讨论o~♥


相关文章推荐:《普歌-飞灵团队-ES6汇总
  • 作者:风时摩羯
  • 出处/源自:风时摩羯的《普歌-飞灵团队-ES7、8新特性汇总
  • 本文版权归作者和CSDN共有,欢迎转载,且在文章页面明显位置给出原文链接,未经作者同意必须保留此段声明,否则保留追究法律责任的权利。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值