es6 学习笔记

入职新公司,公司同事写页面都是es6,今天学习下,跟上节奏。

es6的主要更新的地方

1 声明变量的方式,由var变成 let 和const, var声明可以重复声明,没有块级作用域,可以无限制修改 。改成let之后,变量不能重复声明,并且有块级作用域,const声明的常量,不能修改。

// 重复声明不报错
var a = 100;
var a = 1000;

// 重复声明报错
let b = 100;
let b = 1000;

//块级作用域
if(true){
    let d = 10
}
// 块外面使用报错。
console.log(d)

// 声明的常量不能修改
const PI=3.14

2 可以使用箭头函数

  ()=> {}

  如果只有一个形参,括号可以省略,如果只有一个返回结果大括号可以省略

//之前函数写法

demo =function(a,b){
   return a +b;  
}

// 相当于
demo = (a,b){
  return a+b;        
}

// 一个形参的

demo = a=>{
    console.log(a)  
}

// 单返回值的

demo = (a,b)=>a*b

// 单形参,单返回值

demo =a=>a*a

3 函数参数的变化,参数可扩展,展开,默认值

  

function demo (a,b,...args){

}
//可扩展 ...args 承接了1,2 之后的所有参数
demo(1,2,3,4,4,5,6)

function demo1(a,b,c){

}

var arr= [1,2,3]
// 可展开 
demo1(...arr)

// 默认值

function demo2(a=1,b=2){}

 4 解构赋值,必须是 左右是一个东西,解构必须相等,声明和赋值不能分开,类似php list 函数

//将1,2,3的值分别付给a.b.c
[a,b,c]= [1,2,3]

[e,f,g] = ["aaa",[1,2,3],{a:1}]

 5 数组新增方法  map reduce  filter  forEach 

 6 字符串多了 startsWith 和 endsWith 方法

  字符串模板,反引号

let b = 100
let c = `fafafdafdaa${b}ccccc`

 7 面向对象 class  constructor  extends 

class user {
   constructor(name,age){
     this.name = name
     this.age = age
    }  
    
    // 方法简写 
    getName(){
      console.log(this.name)
     }
    getAge(){
      console.log(this.age)
    }
    
}       

let userObj = new user("小小",111)
userObj.getName()
userObj.getAge()

  8  json的简写 变量和key相同,可以不写key

      9 promise    all  then 

      10 后学补充

 

 

    

posted @ 2020-11-07 19:05  塔塔尔兀格  阅读(105)  评论(0)    收藏  举报