es6随手记

100 阅读2分钟

变量声明

let

let a,
let b,c,d
let e='1',f='2'

let和var的区别

  • 使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象;
  • 使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升;
  • let不允许在相同作用域内,重复声明同一个变量;
  • 块级作用域

const

const A=10
{
  const SCHOOL='大学'
}

const USER={
'name':'张三',
}
USER.name='李四'
  • const定义是需要赋初始值
  • 一般常量使用大写
  • 常量的值不能修改
  • 块级作用域
  • 可以于数组和对象的元素修改,不算做对常量的修改

变量解构赋值

按照一定的模式从数组或者对象中取值,对变量进行赋值的过程称为解构

  1. 数组的解构
const ARR=['1','2','3','4']
let [num1,num2,num3,num4] = ARR
console.log(num1)
console.log(num2)
console.log(num3)
console.log(num4)
  1. 对象的解构
const user ={
    name:'张三',
    age:25,
    work:function(){
       console.log('码畜')
    },
}

let {name,age,work} = user
 console.log(name)
 console.log(age)
 work()

模板字符串

let str =`模板字符串`
console.log(str)
 //可以直接换行允许出现换行符
 let html =`<div>
 <div></div>
 </div>`
 console.log(html)
 //变量拼接
 let strA='拼接一个'
 let strB=`${strA}模板字符串`
 console.log(strB)

对象的简化写法

let name='张三',age=25,
let work=function(){
       console.log('码畜')
    },
const user ={
    name,
    age,
    work
    }

箭头函数

  1. this是静态的,this只想函数生明时所在的作用域下的this值
//let fn = function(){}
let fn=(a,b)=>{
  return a+b
}

let result = fn(1,2)
console.log(result)


function getName() {
      console.log(this.name)
    }
    const getName2 = () => {
      console.log(this.name)
    }
    
    window.name = '张三'
    const user = {
      name: '李四'
    }
    // 直接调用
    // getName()  张三
    // getName2() 张三

    // call方法调用
    getName.call(user) // 李四
    getName2.call(user) // 张三
    

2.不能作为构造函数

  const user = (name, age) => {
      this.name = name
      this.age = age
    }

  const me = new user('张三', 20)
  console.log(me) 

3.不能使用arguments

let fn=()=>{
  console.log(arguments)
}
fn()

4.箭头函数简写

形参只有一个
let add =n=>{
return n+n
}
语句执行结果就是函数的返回值
let pow =n=> n*n

函数参数默认值设置

  1. 形参初始值 具有默认值的参数,一般位置要靠后
   function add(a,b,c=10){
      return a+b+c
    }
    let result = add(1,2)
    console.log(result)
  1. 默认值可以和解构赋值结合
function login({admin,password='123456'}){
    console.log(admin)
    console.log(password)
    }
login({
    admin:'admin',
    password:'123456',
})

rest参数

rest参数必须要放到参数的最后

function date(...args){
  console.log(args) //是一个数组 
}
date(1,2,3)

... 扩展运算符

1.数组的应用

//合并数组
let a=[1,2]
let b=[3,4]
let c=[...a,...b]
//拷贝数组
let d=[1,2,3]
let e =[...d]

1.对象的应用

//合并
let a={
name:'张三',
age:25
}
let b={
  height:180
}
let c={...a,...b}

拷贝

let c={
name:'张三',
age:25
}
let d={
  ...c
}

Set

let arr=new Set([1,2,3,4,4])
console.log(arr)//[1,2,3,4]
//元素个数
console.log(arr.size) //4
//添加
arr.add(5)
//删除
arr.delete(4)
//检测
arr.has(4) //true
//清空
arr.clear()