美文网首页es6
learn-es6常用语法(1)

learn-es6常用语法(1)

作者: crayona | 来源:发表于2019-11-18 17:13 被阅读0次

    1常量和变量  let  cont    (变量声明更加合理  不会有先赋值后声明的情况)

    不能预解析 (变量提升)    也不能重复声明=》会报错

    常量的值无法改变

    a块级作用域

    b暂存死区 不能预解析

    c不能重复声明

    d常量不可声明不赋值  =》const a会报错

    ----

    提升是指es5中的变量  ,你在赋值的下面声明也是可以的

    abc="123"

    var abc


    2常用数据类型  String  Number Boolean Undefined Null +>Object  Function

    es6中新的数据类型 (不重复的数据类型   可以被Object.getOwnPropertySymbol循环key值)

    symbol

    let abc=symbol("name")  //括号中的是对其进行描述   无实在意义

    创建一个对象的私有属性  不能用Object.keys() 去遍历

    可以使用Object.getOwnPropertySymbol去遍历symbol的属性

    -------

    symbol对map的作用不大  因为map中的key值本来就是唯一的 所以可以用Object.keys()  获取symbol属性


    3数据解构  =》 后端传过来的json渲染到页面上      (多样的循环方式 ,可以直接获取index,value等)

    for of (value)/for in(index)/forEach

    for in 循环的值是下标 (index的值是string,不但遍历值还会遍历属性,某些情况下会随机遍历)

    for of循环的值是value(不能获取到下标,除非它是一个map)

    forEach循环中可以有index,value,array

    ***只有map对象才可以用for of获取下标

    for(let [value,i] of new Map(arr.map(item,index)=>[item,index]))

    ----

    可以

     for(let index of arr.keys()){} 遍历index

    for(let value of arr.values()){} 遍历value

    for(let arr of arr.entries()){}    遍历[key,value]


    4解构赋值   (节省一个总参数,使得参数结构更加明了)

    a解构数组嵌套数组  let arr=[1,2,2,[4,3],[5,6,6]]

    let [a,b,c,[d,f],[e,g,h]]=[1,2,2,[4,3],[5,6,6]]

    b解构循环嵌套循环

    let  arr=[[a,b],[c,d],[e,f]]

    for(let [a,b] of arr){

    console.log(a,b)}

    c解构对象

    let person={

    name:'',

    age:'',

    job:''}

    let {name:a,age:b,job:c}=person

    也可用for of 遍历循环[{},{}]

    for (let {name,age,job} of arr){}


    5扩展运算符=》展开运算符 (三个点)      (参数展开更为方便)

    a合并数组  let arr1=[1,2,23];

    arr2.push(...arr1)

    或者 arr3.push([...arr2,...arr1])

    let fn=function(a,b,...c){

    //c表示剩余的参数 [3,4,5,6]

    }

    function(1,2,3,4,5,6)


    6箭头函数(解决this指向问题)

    let abc=()=>{}

    a没有参数要写扩号

    b有参数  参数不只一个的时候要写括号

    c参数可变的时候要用括号括起来 (a,b,...c)=>{}

    d返回值为一个对象时要用括号包起来  const fn=(a,b)=>({a:b})

    ***箭头函数中的this在定义的时候就确定下来了

    在箭头函数中无法通过 call  apply绑定this  第一个参数可以忽略


    7set 类似与数组的一种数据结构    key值不能有重复的  也不能通过下标访问(***数组去重)

    let arr=[1,2,3,4,4,5,5,4];

    let setArr=new set();

    arr.forEach((x)=>setArr.add(x))

    --------------------------

    map(名值对形式 并且key可以为任何数据类型)    解决之前的key 不能为json

    a  map的key值可以是任何数据类型

    b   可以通过key方法或者value方法一次拿到所有的key值或者value值

    c  forEach遍历

    d 通过扩展运算符转换成数组[...maparr]

    key值唯一   key方法遍历  forEach遍历  扩展运算符转化成数组

    set与map的方法:set  add clear has

    在map中通过get来获取值

    ***通过map进行对象排序***

    let mapPeople=new map({

    people:[

    {age:1}

    {age:5}

    {age:3}

    ]})

    mapPeople.get(people).arrMan.sort((a,b)=>{

    return a.age-b.age})


    8 属性表达式 (修改对象的键值)         修改对象键值

    定义对象时把表达式放入方括号内

    let people={

    [name]:age

    } //来修改属性名

    方括号内可以是  : 表达式 ||函数   该函数也可以执行


    9Math.trunc(-1.23333) 去除小数点后的数 //-1

    Math.sign(-5)  //-1

    Math.sign(5) //+1

    Math.sign(0) //0

    Math.sign(NaN)   判断一个数是正数负数还是0

    相关文章

      网友评论

        本文标题:learn-es6常用语法(1)

        本文链接:https://www.haomeiwen.com/subject/vsxbictx.html