# ES6基础

ES6基础

let和const

在以前的js中有一个问题,就是只存在函数作用域而不存在局部作用域。

let,const的出现改变了这个问题。const就是定义常量。

this指向

说默认this指向调用它的对象倒不如说函数this的指向是又他的调用方法决定的。
例如:

'use strict';
const person = {
    name: '',
    walk() {
        console.log(this);
    }
}

const walk = person.walk; // 绑定this
walk();

这里将会将会返回undefined(在严格模式下),如果不使用严格模式,那么这个this将指向window对象,在node中也就是global对象。而在严格模式下不允许this指向window对象。

对于匿名函数,他不会改变this的指向。

数组和对象的解构

使用...来对数组和对象进行析构操作。

const arr = [1, 2, 3]
const ob = {name: 'ob'}
const [a, b, c] = [...arr] // 数组析构
const {name} = {...ob} // 对象析构

如果想要对象中的某个属性进行重命名而不像使用原来的名字的化,可以这样做{name: newName = {...ob}。对象析构根据键复制,如果你不想要对应的某个属性的话,你可以忽略这个键名。

结构操作在很多时候都很有用,比如你想要连接几个数组的时候一般使用concat的方法,但是concat方法不想像使用析构的时候可以随意插入新值。

还有像要进行深拷贝的时候也不需要写自己的深拷贝方法了。

扩展运算符

例如像是这样子的函数函数

function test(...args) {
    //
}
function test1(a1, ...args) {
    //
}

对于test函数,传入的所有参数(不限个数)都将存储在args数组中。而对于test1函数,除传入的第1个参数以外都将会被装入args数组中。

函数

  1. Array.filter
    该函数接收一个回调函数,数组的每一项都将会被传入这个函数。当回调函数返回值为true时,此时被传入回调函数的一项值被装入一个新的数组。

    在数组的所有条目遍历完成以后,将这个新数组返回。

  2. Array.map

    对数组的每一项应用map中传入的回调函数,之后将经过处理的项装入一个新的数组并返回。

猜你喜欢

转载自www.cnblogs.com/freesfu/p/11605133.html