首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES6/ES2015

ES6/ES2015

作者头像
羊羽shine
发布2019-06-15 15:21:48
8500
发布2019-06-15 15:21:48
举报
文章被收录于专栏:Golang开发Golang开发
let

限制块作用域,限定作用域,let修饰会报错 j找不到

function f() {
       var i = 1;
   }
   console.log(1)
    function f1() {
        let j = 1;
    }
    console.log(j)
常量const

常量再次赋值会报错

const data = 100;
   console.log(data);
   data = 10

数组元素是可以修改的,但是数组本身是不能变更的

 const list =[1,2,3]
    console.log(list)
    list[0]=4
    console.log(list)
进制转换

0b 二进制 0o八进制 0x 十六进制

   let num  = 10;
   console.log(num.toString(8))
   console.log(num.toString(2))
   console.log(num.toString(16))
字符串嵌入

反单引号表示模板

   let name  = "tony";
   let str1 = "hello,${name}!"
   console.log(str1)
   let str2 = `hello,${name}!`
   console.log(str2)
Symbol数据类型
   let str1 = String("HelloWorld")
   let str2 = String("HelloWorld")
   console.log(str1==str2)
   console.log(str1===str2)
   let s1 = Symbol("HelloWorld")
   let s2 = Symbol("HelloWorld")
   console.log(s1==s2)
   console.log(s1===s2)

作为常量

const java = Symbol()
const php = Symbol()

作为属性名

 const java = Symbol()
   const php = Symbol()
    var obj = {}
    obj[java] = "java"
    obj[php] ="php"
    console.log(obj[java])
    console.log(obj[php])
解构赋值
 let [a,b,c] = [10,20,30]
    console.log(a,b,c)
let [x,y,...other]=[1,2,3,4,5]
    console.log(x,y,other)
 let {name,age} ={name:"tony",age:20}
   console.log(name,age)
数组循环(for...of)
    let list = [10, 20, 30, 40, 50]
    for (let v in list) {
        console.log(v, list[v])
    }
    for (let v of list) {
        console.log(v)
    }
函数的默认值
    function sayHello(name = "tony") {
        console.log(`hello ${name}`)
    }

    sayHello()
    sayHello("xiaoming")

必须指定默认值

function required() {
         throw new Error("参数不能为空")
    }
    function sayHello(name = required()) {
        console.log(`hello ${name}`)
    }
    sayHello("xiaoming")
Arrow Function箭头函数

通过箭头简化代码

    let list = [10,20,30];
    //es5
    let newList = list.map(function (value,index) {
        return value*value
    })
    //es6
    console.log(newList)
    newList = list.map((value,index)=>{
        return value*value
    })
    console.log(newList)
    newList =list.map(value => {
        return value*value
    })
    console.log(newList)
可变长参数
    function sum(...args) {
      let result  = 0;
      args.forEach(value => {
          result += value
      })
        return result
    }
    console.log(sum(1,2,3,4))
类定义class
    class Student{
        constructor(name,age){
            this.name = name;
            this.age = age;
        }
        print(){
            console.log(`${this.name}--${this.age}`)
        }
        static info(){
            console.log('静态类方式')
        }
    }
    let s = new Student("xiaoming",20)
    s.print()
    Student.info()
setter和getter
    class Student{
        constructor(name,age){
            this.name = name;
            this.age = age;
        }
        set gender(v){
            this._gender = v
        }
        get gender(){
            return this._gender
        }
    }
    let s = new Student("xiaoming",20)
    s.gender = "M"
    console.log(s.gender)
Promise

es5中函数回调

 let ajax = function (callback) {
        console.log('执行')
        setTimeout(function () {
            callback&&callback.call()
        },1000)
    }
    ajax(function () {
        console.log('timeout')
    })

作用 解决异步回调问题,传统方式,大部分用回调函数/事件。

    new Promise(function (resolve,reject) {
        //resolve 成功调用
        //reject 失败调用
    })
    let a = 10;
    let promise = new Promise(function (resolve,reject) {
      if (a ==10) {
           resolve("success")
      }else {
           reject("fail")
      }
    })
    promise.then(res=>{
        console.log(res)
    },err =>{
        console.log(err)
    })

捕获错误

  promise.catch(err=>{
        console.log(err)
    })

Promise.resolve()

new Promise(resolve => {
        resolve("aaa")
    }).then(res=>{
        console.log(res)
    })

Promise.all([p1,p2,p3]):把promise批量处理,必须确保所有的promise对象,都是resolve状态,都是成功的

    let p1 = Promise.resolve("a")
    let p2 = Promise.resolve("b")
    let p3 = Promise.resolve("c")
    Promise.all([p1,p2,p3]).then(res =>{
        let [r1,r2,r3] = res
        console.log(r1,r2,r3)
    })

Promise.race

 let p1 = Promise.resolve("a")
    let p2 = Promise.reject("b")
    let p3 = Promise.resolve("c")
    Promise.race([p1,p2,p3]).then(res =>{
        console.log(res)
    })
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.06.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • let
  • 常量const
  • 进制转换
  • 字符串嵌入
  • Symbol数据类型
  • 解构赋值
  • 数组循环(for...of)
  • 函数的默认值
  • Arrow Function箭头函数
  • 可变长参数
  • 类定义class
  • setter和getter
  • Promise
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档