ES6常用的几个知识点

本文详细探讨了ES6中的变量声明,包括var、let和const的区别,如变量提升、暂时性死区和可修改性。此外,介绍了新的数据类型Symbol的独特性质,确保其唯一性。接着,讲解了解构赋值的用法,包括默认值、对象和数组的解构。最后,简述了Promise的使用及其解决回调地狱的问题,展示了如何创建和使用Promise。
摘要由CSDN通过智能技术生成

目录

一丶变量的声明

        1.变量提升;

        2.是否存在暂时死区;

        3.是否可以修改变量;

二丶一个新的数据类型Symbol

三丶解构赋值

 四丶Promise的使用以及实现


一丶变量的声明

在ES5中只能使用var和function来声明变量,在人们使用的时候发现其中有非常多的缺陷,后来在ES6中更新了let和const两种新的可以声明变量的方式但是他们都各有不同:

        1.变量提升;

        var:var在声明变量的过程中会将变量提升到作用域范围的最顶端,这样就算在声明之前也可以使用只不过值 为undefind,可重复声明变量;

        

function fn1(){
        console.log(num)
        // 此时num打印出来的为undefind
        var num = 1
        console.log(num);
        // 此时num打印出来的为1
        var num=2
        console.log(num);
        // 此时num打印出来的为2
        num =3 
        console.log(num);
        // 此时num打印修改过的为3
    }

        let:let在生命变量得时候并不会让他的变量达到提升,这样就能在声明之后使用,否则就会报错;在同一作用域不可以重复声明变量;

function fn2(){
        // console.log(num)
        // 此时num打印出来会报错
        let num = 1
        console.log(num);
        // 此时num打印出来的为1
        // let num=2
        // 此时重新赋值就会报错
        num = 2
        // 此时num打印修改过的为2
    }

        const:const在声明变量的时候和let一样;在同一作用域不可以重复声明变量;

function fn3 (){
        const a = 0
        console.log(a);
        // 此时num打印出来的为1
        a=1
        // 但是不能进行修改,否则报错
    }

        2.是否存在暂时死区;

        let和const是存在暂时性死区的,就是说当你声明的变量绑定在一个块级作用域的时候这个变量就不会再受到其他的影响,而暂时死区就是没有声明代码之前是不可以使用变量的,只能等到代码被编译之后才能使用;

        3.是否可以修改变量;

        let和var是可以修改变量的,但是const声明的变量不可以修改,因为使用const声明的是常量,常量只要一声明就不可以在进行改变了,一般const声明之后会立即初始化,不能留到以后赋值

二丶一个新的数据类型Symbol

        Symbol是ES6新的一个简单数据类型,经只要数据类型为Symbol就可以说明这是唯一的一个值,就算有重新写一个,也是说两个不一样,所以Symbol类的数据可以保证不会和其他属性一样。

 let a =Symbol(1)
    let b =a
    // console.log(a)=>Symbol(1)
    // console.log(b)=>Symbol(1)

三丶解构赋值

        1.默认值法;当解构没有相对的数值就可以使用默认值;如下打印d为10

let arr=[1,2,3]
    let [a,b,c,d=10]=arr
    console.log(a);
    console.log(b);
    console.log(c);
    console.log(d);

         2.对象的结构赋值;

let a = {name:1,age:2}
    let {name,age}=a
    console.log(name);
    console.log(age);

        3.数组的结构赋值;

let arr =[1,2,3,4]
    let [a,b,c,d]=arr
    console.log(a);
    console.log(b);
    console.log(c);
    console.log(d);

        4.剩余模式;这时候b就是展开的2345

let [a,...b] = [1,2,3,4,5]
    console.log(b)

 

 四丶Promise的使用以及实现

        promise是一个构造函数,可以解决回调地狱,它有自己的回调函数以及api

let a = new Promise((resolve, reject) => {
    //    return resolve(1)
       return reject(2)
    })
    a.then(res=>{
        console.log(res);
    }).catch(req=>{
        console.log(req);
    })

*未完待续 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长风戏子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值