es6学习笔记之基础篇0622

103 阅读1分钟

1、变量

let

  • 不能进行预解析
  • 作用域名:全局作用于和块级作用域
  • 同一块级作用域不可以重复声明

var

  • 可以进行预解析
  • 作用域名:全局作用于和函数作用域
  • 可以重复声明

const

  • 不能进行预解析
  • 不能重复声明
  • 作用域名:全局作用于和块级作用域
  • 声明的时候赋值,之后不可以更改

let 和var 在for循环的区别

    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
    </ul>
  </body>
  <script>
    let list = document.querySelectorAll('li')
    for(var i=0;i<list.length;i++){
      list[i].onclick = function(){
        console.log(i) //3,3,3
      }
    }
    
    for(let i=0;i<list.length;i++){
      list[i].onclick = function(){
        console.log(i) //0,1,2
      }
    }
  </script>

2、解构赋值

对象解构赋值

key值必须一样

let obj = {
  a:1,
  b:2
}

let {a,b} = obj
console.log(a,b) //12

数组解构赋值

let arr = [4,5]
let [e,f,d] = arr
console.log(e,f,d)

拓展

将a,b两个数值做交换

之前的方式是设置一个中间变量

let a=1
let b=2
let c = a
a = b
b = c
console.log(a,b)

结构赋值以后更简便

let a=5;
let b=3;
[a,b]=[b,a]
console.log(a,b)

对象

##属性简洁表示法

let a = 'abc'
let b = 'dv'
let c = 'key'


let obj = {
  a,
  b,
  [c]:'sss'
}