微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ES6笔记

let与const

ES6为了解决被广大程序员诟病已久的缺少块级作用域的问题,新增了let与const

暂时性死区

使用let与const声明的变量与其所在的块级作用域相绑定

var o=1;
{
      console.log(o)      //ReferenceError: Cannot access 'o' before initialization
      let o=2;
}

解构赋值

  • 数组解构赋值
var arr = ["I", "am", ".7\\0"]
//变量多了则多出的为undefined,数组元素多了则“截断”数组
var [a, b, c] = arr;      //一定需要[]
console.log(a, b, c)      //I am .7\0
  • 对象解构
var obj = {
    name: ".7\\0",
    age: "20",
    sex: "Man"
}
//变量多了则多出的为undefined,数组元素多了则“截断”对象
var {name,age,sex} = obj      //必须有{}
console.log(name, age, sex)      //.7\0 20 Man

箭头函数 ()=>

ES6引入箭头函数,箭头函数没有arguments(弃用),也没有this
在箭头函数中使用的this是上下文的this

var obj = {
    myName: ".7\\0",
    age: "20",
    sex: "Man",
    sayHello: () => {
        console.log(this.myName)
    }
}
obj.sayHello() //undefined

在写上面代码的时候最开始myName写的是name,结果很玄学的打印空串,最后发现window中居然有name这个属性

剩余参数

没什么好说的,直接show code

(function arguments(...args)
{
      console.log(args)
})(1,2,3,4,5,6)      //(6) [1, 2, 3, 4, 5, 6]
  • 与解构配合使用
var arr = ["I", "am", ".7\\0"]
var [a, ...b] = arr; //一定需要[]
console.log(a, b) //I (2) ["am", ".7\0"]

扩展运算符

扩展运算符将数组或对象转换为用逗号分割的参数序列

let arr=[1,2,3]
console.log(...arr)      //...arr就相当于把数组变成了1,2,3
//=============================================
let obj = {
    myName: ".7\\0",
    age: "20",
    sex: "Man",
    sayHello: () => {
        console.log(this.myName)
    }
}
console.log({
    ...obj      //一定要有{},否则报错
})
  • 奇技淫巧
    -- 合并数组:
    [...arr1,...arr2]
    -- 转换类数组为数组:
      let dom=document.getElementsById('top')
      [...dom]
      //Array.from()也可以做到
      Array.from(dom)

几个数组方法

  • find():查找第一个满足条件的元素,找到了返回该元素,没有则返回undefined
arr.find(item=>{
      return item===xxx
})
  • findindex():同上,但返回值为该元素下标
  • includes():查找数组中是否包含该元素,返回true/false

模板字符串

使用` `括起来的字符串是模板字符串,可以使用${}动态绑定值

      let s=`hello ${str}`,str=".7\\0"
      console.log(s)      //hello .7\\0

但是要注意的是,变量的声明一定要在模板字符串的前面

几个字符串方法

  • startsWith
  • EndWith

set

set 是一种数据结构,应该和c++STL中的一样,采用红黑树

  • 几个方法
    -add(value)
    -delete(value)
    -has(value)
    -clear()
    -forEach(value=>{do something...})
  • 数组去重:
      console.log(new Set(["a","b","a","b"]))      //a,b

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐