ES* 相关知识点(不间断更新)

一、ES6(ES2015)

1. let 和const

1-1. var / let 和 const 三者的区别

varletconst
变量提升××
全局变量××
重复声明××
重复赋值×
暂时性死区×
块作用域×
只声明不初始化×

暂时性死区: ES6明确规定,如果区块中存在let命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用改变量。
注意: let和const 声明的变量,不会绑定在window上。

2. class(类)

在ES6之前,如果我们要生成一个实例对象,传统的方法就是写一个构造函数,例子如下:

	function obj (name) {
        this.name = name
    }
    obj.prototype.information = function () {
        return '构造函数:' + this.name;
    }

但是在ES6之后, 我们可以这样写:

	class obj {
        constructor(name){
            this.name = name
        }
        information(){
            return '构造函数:' + this.name;
        }
    }

3. 箭头函数

	const obj = {
        radius: 20 ,
        diameter () {
            console.log('1====',this.radius);
            return this.radius * 2 
        },
        perimeter: ()=>{
            console.log('2====',this.radius);
            return 2*Math.PI*this.radius
        }
    }
    // 普通函数this指向调用者,obj, 最后结果是 40.
    console.log(obj.diameter());
    // 箭头函数this指向上文函数,此程序无上下文函数,所以this指向window ,而window下并未定义radius,因此this.radius是undefined,最后结果是NaN.
    console.log(obj.perimeter()); 

3-1、箭头函数和普通函数区别

  • 箭头函数是匿名函数
  • 箭头函数不能绑定arguments, 取而代之用rest 参数…解决
  • 箭头函数没有原型属性,故不能作为构造函数,不能使用new
  • 箭头函数的this永远指向其上下文函数的this,没有办法改变其指向,普通函数的this指向调用它的对象,可改变其指向。

4. 函数参数默认值

 	function add (num = 0){
        return num+1
    }

5. 模板字符串

	function add (num = 0){
       return `返回结果:${num+1}`
    }

6. 解构赋值

  • 数组的元素是按次序排列的,变量的取值由它的位置决定;
  • 对象的属性没有次序,变量必须与属性同名,才能取到正确的值。
    对象的重命名解构:
    let { foo : color } = { foo:‘red’ }
    解析:
    • foo 是用来做匹配的,用来去解构对象里面寻找值的
    • color 才是变量名, color = ‘red’
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值