ES6新增特性(一)

作者: 李小白呀 | 来源:发表于2021-02-22 23:37 被阅读0次

const(声明常量), let(声明变量)关键字;

let关键字就是用来声明变量的
使用let关键字声明的变量具有块级作用域
在一个大括号中 使用let关键字声明的变量才具有块级作用域 var关键字是不具备这 个特点的
防止循环变量变成全局变量
使用let关键字声明的变量没有变量提升
使用let关键字声明的变量具有暂时性死区特性

const
声明常量,常量就是值(内存地址)不能变化的量 具有块级作用域
const声明的变量是一个常量
既然是常量不能重新进行赋值,
如果是基本数据类型,不能更改值,
如果是复杂数据 类型,不能更改地址值
声明 const时候必须要给定值

let、const、var 的区别
使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象
使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升
使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值

image.png

解构赋值

数组解构

let [a, b, c] = [1, 2, 3];  
console.log(a)//1  
console.log(b)//2  
console.log(c)//3 
//如果解构不成功,变量的值为undefined

对象解构

let person = { name: 'zhangsan', age: 20 };   
let { name, age } = person;  console.log(name); // 'zhangsan'   
console.log(age); // 20
 let {name: myName, age: myAge} = person; // myName myAge 属于别名  
console.log(myName); // 'zhangsan'   
console.log(myAge); // 20

小结 解构赋值就是把数据结构分解,然后给变量进行赋值
如果结构不成功,变量跟数值个数不匹配的时候,变量的值为undefined
数组解构用中括号包裹,多个变量用逗号隔开,对象解构用花括号包裹,多个变量用逗号隔开
利用解构赋值能够让我们方便的去取对象中的属性跟方法

箭头函数

() => {} //():代表是函数; =>:必须要的符号,指向哪一个代码块;{}:函数体 
const fn = () => {}//代表把一个函数赋值给fn

函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号
如果形参只有一个,可以省略小括号
箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this

小结: 箭头函数中不绑定this,箭头函数中的this指向是它所定义的位置,可以简单理解成,定义箭头函数中的作用域的this指向谁,它就指向谁

箭头函数的优点在于解决了this执行环境所造成的一些问题。比如:解决了匿名函数 this指向的问题(匿名函数的执行环境具有全局性),包括setTimeout和setInterval 中使用this所造成的问题

class Animal {
    constructor(){
        this.type = 'animal'
    }
    says(say){
        setTimeout( () => {
            console.log(this.type + ' says ' + say)
        }, 1000)
    }
}
 var animal = new Animal()
 animal.says('hi')  //animal says hi

剩余参数

剩余参数语法允许我们将一个不定数量的参数表示为一个数组,不定参数定义方式,这 种方式很方便的去声明不知道参数情况下的一个函数

function sum (first, ...args) {      
    console.log(first); // 10      
    console.log(args); // [20, 30]   
}  
sum(10, 20, 30)

剩余参数和解构配合使用

let students = ['wangwu', 'zhangsan', 'lisi']; 
let [s1, ...s2] = students;  
console.log(s1);  // 'wangwu'  
console.log(s2);  // ['zhangsan', 'lisi']

相关文章

  • ES6新增特性(一)

    const(声明常量), let(声明变量)关键字; let关键字就是用来声明变量的使用let关键字声明的变量具有...

  • es6新增特性

    一、变量的改变 let 用来声明变量(块级作用域) const 用来表示常量(块级作用域) 块级作用域 就是在{}...

  • es6新增特性

    个人主观意见整理es6中常用十个特性:1、默认参数2、模版表达式3、多行字符串4、解构赋值5、改进的对象表达式6、...

  • ES6新增特性

    const(声明常量), let(声明变量)关键字;map 和 set 数据类型;模板字符串;对象数组解构赋值;函...

  • ES6改良ES5中的5大“缺陷”

    前言 ECMAScript 6 (ES6) 新特性可以分为: 新增语法(例如:class) 增强 JavaScri...

  • Promise基础

    1、Promise是什么? promsie是ES6新增的一个特性,它已经列入ES6的正式规范中promise是抽象...

  • ES6特性总结

    ES6 新增了很多特性,这里罗列了一些常用的,供大家参考。 ES6常用方法罗列 let、count iterabl...

  • ES6 笔记(常量&&变量)

    ES6 笔记(常量&&变量) 变量&&常量 新特性 ES6 新增了let命令,用来声明变量。它的用法类似于var,...

  • ES6/ES7/ES8常用特性和新特性

    ES6 ES6在ES5的基础上新增了一系列特性,这里仅列出常用特性 变量的改变,添加了块级作用域的概念let声明变...

  • 教你如何使用ES6的Promise对象

    Promise对象,ES6新增的一个全新特性,这个是 ES6中非常重要的一个对象 Promise的设计初衷 首先,...

网友评论

    本文标题:ES6新增特性(一)

    本文链接:https://www.haomeiwen.com/subject/uuokfltx.html