JS高级-ES6

let

  • ES6中新增加的用于声明变量的关键字

    • let声明的变量只在所处于的块级有效
    • 使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性
    if(true){
    	let num = 120
    }
    console.log(num) //num is not defined
    
    • 不存在变量提升
    console.log(num)//num is not defined
    let num = 120
    
    • 暂时性死区
    var temp = 'let变量'
    if(true){
    	console.log(temp)//temp is not defined
    	let temp = '数据中心'
    }
    

const

  • 声明常量,常量就是值(内存地址)不能变化的量
    • 具有块级作用域
    if(true){
    	const num = 123
    }
    console.log(num)//num is not defined
    
    • 声明常量时必须赋值
    const PI //Missing initializer in const declaration
    
    • 常量赋值后,值不能修改
    <script>
      const PI = 3.14
      //PI = 120 //Assignment to constant variable.
      console.log(PI)
    
      const arr = [120,121,30]
      arr[0] = 156
      arr[1] = 180
      console.log(arr)
      //arr = [123,125] //Assignment to constant variable.
    
    </script>
    

var \ let \ const区别

varletconst
函数级作用域块级作用域块级作用域
变量提升不存在变量提升不存在变量提升
值可更改值可更改值不可更改

解构赋值

  • ES6允许从数组中提取值,按照对应位置,对变量赋值。对象也可以实现解构

数组解构

let [a,b,c] = [1,2,3]
console.log(a)//1
console.log(c)//3

对象解构

let person = {
	name: '张三',
	age: 18,
	hobbys: ['篮球','足球']
}
let {name,age,hobbys} = person
let [h1,h2] = hobbys
console.log(name)//张三
console.log(hobbys)
console.log(h2)//足球
对象解构重命名
let person = {
	name: '张三',
	age : 18
}
let {name: uname,age: uage} = preson
console.log(uname)//张三
console.log(uage)//18

箭头函数

  • ES6中新增的定义函数的方式
    () => {}
    const fn = () => {}
    

箭头函数的几种情况

  • 函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号
    const sum = (num1 ,num2) => num1 + num2
    sum()
    
  • 参数只有一个,可以省略小括号
    const num = num => num + 1
    num()
    

箭头函数中的this

  • 箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this
<script>
      var obj = {
        name: '张三'
      }
      function fn(){
        console.log(this)//obj
        return () => {
          console.log(this)//obj
        }
      }
      const func = fn.call(obj)
      func()
    </script>

剩余参数

  • 剩余参数语法允许我们将一个不定数量的参数表示为一个数组
function sum (first,...args){	
	console.log(first)//10
	console.log(args)//[23,20]
}
sum(10,23,20)

Set

  • ES6提供了新的数组结构Set,它类似于数组,但是成员的值都是唯一的,没有重复的值
  • Set本身是一个构造函数,用来生成Set数据结构
    const s = new Set()
    
  • Set函数可以接受一个数组作为参数,用来初始化
    const s1 = new Set([1,2,3,4,5,2])
    console.log(s1.size)//5
    console.log(...s1)
    

Set实例方法

  • add(value)
    • 添加某个值,返回Set结构本身
  • delete(value)
    • 删除某个值,返回一个布尔值,表示删除是否成功
  • has(value)
    • 返回一个布尔值,表示该值是否为Set的成员
  • clear()
    • 清除所有成员,没有返回值

遍历

  • Set结构的实例与数组一样,也拥有forEach方法,用于对每个成员执行某种操作,没有返回值
s1.forEach(value => console.log(value)) // 1 2 3 4 5

简单学习内容,后面再补充

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值