ES5和ES6中的一些综合运用(延续更新)

1.函数的length属性

ES5中,length代表形参(即愿望传入的参数)的数目,如function display(a,b,c){ / /} ;display.length即是3
ES6中状况有所不同:
(1)函数默许参数
指定了默许参数后,函数的 length 将返回没有指定默许参数的参数的个数

funciton display(str1='test',str2){
    console.log(str1+str2);
}
display.length;//1

(2)rest(…变量名)
rest参数也不会计入length属性

funciton display(str1,...strs){
        console.log(str1+str2);
    }
    display.length;//1

2.类数组转成真正数组的几种体式格局

ES5中:Array.prototype.slice.call();

Array.prototype.slice.call(arguments);//argemtns->Array

ES6中:
(1)Array.from()能够将相似数组的对象和可遍历的对象转换为真正的数组

var arr = Array.from(arguments);

(2)rest参数 情势:“ …变量名”重要用在将arguments对象转换为数组

把arguments类数组对象变成真正的对象:
funciton display(...arr){
    //...arr替代arguments
    arr instanceof Array //true
}

(3)扩大运算符:

[...arrayLive]

(4)set要领:

new Set(arrayLive);

3.运用函数函数的几点注重(重点明白)

箭头函数没有本身的this,它们的this都是外层函数的this
(1)函数体内的this对象就是定义时地点的对象,而不是运用时地点的对象
(2)不能够看成组织函数。也就是不能够运用new敕令,不然会报错
(3)不能够运用arguments对象,该对象在函数体内不存在.假如要用能够用rest参数替代
(4)不能够运用yield敕令,因而箭头函数不能做Generator函数
细致内容请参阅:http://es6.ruanyifeng.com/#do…

4.运用ES6为对象增加属性

Object.assign:用来将源对象的一切的可罗列属性复制到目的对象
语法:Object.assign(targetObj,source1,source2,…)
比方:

var target = {a:1,b:2};
var source1 = {c:3};
var source2 = {d:4};
Object.assign(target,source1,source2);
target//{a:1,b:2,c:3,d:4};

这里有一些须要注重的处所:
(1)只复制自在属性并且是可罗列的属性
(2)这里的复制是浅复制
(3)假如目的对象与原对象有同名属性,或许多个原对象有同名属性,则背面的属性会掩盖前面的属性

5.对象属性的遍历要领一览

ES5中有三种要领会疏忽enumerable为false的属性
(1)for…in轮回:遍历对象本身和继续可罗列的属性
(2)Object.keys():返回对象本身的一切可罗列的属性的键名
(3)json.stringify():只串行化对象本身的可罗列属性
ES6中新增了两个操纵会疏忽enumerable为false的属性
(1)Object.assign():只复制对象本身可罗列属性
(2)Reflect.enumerate():返回一切for…in会遍历的属性

属性的遍历:
ES6中有6中要领能够遍历对象
(1)for…in轮回:遍历对象本身和继续可罗列的属性
(2)Object.keys():返回对象本身的一切可罗列的属性的键名
(3)getOwenPropertyNames():返回一个数组,包含对象本身一切的属性(不包含 Symbol属性,然则包含不可罗列属性)
(4)getOwenSymbolNames():返回一个数组,包含对象本身一切的Symbol属性
(5)Reflect.ownKeys():返回一个数组,包含对象本身一切的属性(包含Symbol和不可罗列属性)
(6)Reflect.enumerate():返回一切for…in会遍历的属性

以上6种要领配合恪守的遍历序次划定规矩:
(1)起首遍历属性名为数字的属性,根据数字递次排序
(2)其次遍历一切属性名为字符串的属性,根据字符串天生时候排序
(3)末了遍历一切属性名为symbol值得属性,根据天生时候排序
对象属性从属关系推断:
hasOwnPrototyOf():本身 可罗列
in :本身和继续

6._proto_属性

_proto_属性用来读取或许设置当前对象的prototype对象。
送上链接:https://github.com/creeperyan…

7.Iterator

8.Generator

    原文作者:specialCoder
    原文地址: https://segmentfault.com/a/1190000009348297
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞