资讯专栏INFORMATION COLUMN

ES6中对象、函数、数组的扩展

W_BinaryTree / 1356人阅读

摘要:对象判断两个参数的值是否全等与类似不过区别在于返回返回用于对象的合并将参数中所有可枚举的属性复制到目标对象返回目标对象若有相同的属性值后面的会覆盖之前的值传入一个对象返回一个数组包含对象中所有可遍历的属性的键名传入一个对象返回一个数组包含

对象

Object.is(value1,value2)

判断两个参数的值是否全等,与 === 类似,不过区别在于 Object.is(+0, -0)返回false, Object.is(NaN, NaN)返回true

    Object.is("foo","foo") //true
    Object.is({},{}) //false

Object.assign(target,o1,o2...)

用于对象的合并将参数中所有可枚举的属性复制到目标对象target,返回目标对象
若有相同的属性值,后面的会覆盖之前的值

const target = {a:1, b:2, c:3}
const o1 = {b:4, d:5}
const newTarget = Object.assign(target, o1)

console.log(target) //{a:1, b:4, c:3, d:5}
console.log(Object.is(target,newTarget)) //true

Object.keys(obj)

传入一个对象返回一个数组,包含对象中所有可遍历的属性的键名

const obj = {name: "lil", age: 3}
console.log(Object.keys(obj)) //[ "name", "age" ]

Object.values(obj)

传入一个对象返回一个数组,包含对象中所有可遍历的属性的键值

const obj = {name: "lil", age: 3}
console.log(Object.values(obj)) //[ "lil", 3 ]

Object.entries(obj)

传入一个对象返回一个数组,包含对象中所有可遍历的属性的键值对

const obj = {name: "lil", age: 3}
console.log(Object.entries(obj))
//[ [ "name", "lil" ], [ "age", 3 ] ]

Object.setPrototypeOf(obj,prototype)

用来设置对象的prototype对象,返回参数对象本身,这个方法是ES6
正式推荐的设置原型对象的方法,等同于

function foo(obj,proto) {
    obj.__proto__ = proto;
    return obj
}

Object.getPrototypeOf(obj)

传入对象获取对象的原型对象

函数

rest参数

reset用来获取函数多余的参数,将多余的参数放入数组中,可调用数组的方法

function foo(...rest) {
  return rest
}
console.log(foo(1,2,3)) //[1,2,3]
数组

扩展运算符

扩展运算符表示为...,可理解为rest参数的逆运算
扩展运算符将一个数组转为用逗号隔开的参数序列

const arr = [1,2,3,4]
console.log(arr) //1 2 3 4

将字符串转换为数组

console.log([..."hello"]) //[ "h", "e", "l", "l", "o" ]

合并数组

const arr1 = [1,2,3]
const arr2 = [4,5,6]
const arr3 = [...arr1,...arr2]
console.log(arr3) //[ 1, 2, 3, 4, 5, 6 ]

Array.from()

用于将类数组或者可遍历的对象转为数组

const obj = {"0":"a","1":"b","2":"c",length:3}
console.log(Array.from(obj)) //[ "a", "b", "c" ]

console.log(Array.from("hello"))//[ "h", "e", "l", "l", "o" ]

Array.of()

将一组值转换为数组,弥补了Array()的不足之处

Array.of(1,2,3) //[1, 2, 3]
Array(1,2,3) //[1, 2, 3]

Array.of(3) //[3]
Array(3) //[, , ,]

find()

返回数组中满足回调函数的第一个的值,全都不满足则返回undefined

const arr = [1, 2, 30, 100, 60]
const result = arr.find(item => item > 30)
console.log(result) //100

findIndex()

find()用法类似,返回值为满足回调函数的第一个值的下标
全都不满足则返回undefined

const arr = [1, 2, 30, 100, 60]
const result = arr.findIndex(item => item > 30)
console.log(result) //3

entries()

用于遍历数组,返回一个遍历器对象Object [Array Iterator]{}
可用for...of进行循环遍历

const arr = ["a", "b", "c"]
for (let [index, item] of arr.entries()) {
    console.log(index, item)
}
//0 "a"
//1 "b"
//2 "c"

keys()

用法与entries()一样,区别在于keys()是对键名进行遍历而entries()
是对键值对进行遍历

const arr = ["a", "b", "c"]
for (let index of arr.keys()) {
    console.log(index)
}

includes()

发方法返回布尔值,检测数组是否包含某个值

const arr = [1,2,"a",NaN]
arr.includes(1) //true
arr.includes(3) //false
arr.includes("a") //true
arr.includes(NaN) //true

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106774.html

相关文章

  • ES6 ...操作符

    摘要:在语法中,操作符有两种意义剩余语法,参数和展开语法,展开数组对象,作为函数数组对象的扩展运算符。使用和参数进行操作其余参数传给原始函数展开语法运算则可以看作是参数的逆运算。 在ES6语法中,...操作符有两种意义:rest(剩余语法,rest参数) 和 spread(展开语法,展开数组/对象),作为函数、数组、对象的扩展运算符。 从某种意义上说,剩余语法与展开语法是相反的:剩余语法将多...

    MorePainMoreGain 评论0 收藏0
  • ES6标准入门》读书笔记

    摘要:标准入门读书笔记和命令新增命令,用于声明变量,是块级作用域。用于头部补全,用于尾部补全。函数调用的时候会在内存形成一个调用记录,又称为调用帧,保存调用位置和内部变量等信息。等到执行结束再返回给,的调用帧才消失。 《ES6标准入门》读书笔记 @(StuRep) showImg(https://segmentfault.com/img/remote/1460000006766369?w=3...

    HollisChuang 评论0 收藏0
  • ES6rest参数和扩展运算符

    摘要:参数的形式为变量名扩展运算符是三个点。传递给函数的一组参数值,被整合成了数组。扩展运算符的应用普通的函数调用上面代码中,和这两行,都是函数的调用,它们的都使用了扩展运算符。这时,扩展运算符可以将其转为真正的数组,原因就在于对象实现了。 rest参数和扩展运算符都是ES6新增的特性。rest参数的形式为:...变量名;扩展运算符是三个点(...)。 rest参数 rest参数用于获取函数...

    ccj659 评论0 收藏0
  • ES6学习总结(1)

    摘要:返回一个对象,遍历对象自身和继承的所有可枚举属性不含,与相同和在红宝书中就已经提到过属性,表示的是引用类型实例的一个内部指针,指向该实例的构造函数的原型对象。 半个月前就决定要将ES6的学习总结一遍,结果拖延症一犯,半个月就过去了,现在补起来,惭愧惭愧。 阮一峰的《ES6标准入门》这本书有300页左右,除了几个新的API和js语法的扩展,真正有价值的内容并不多。所谓存在即合理,每部分的...

    happyfish 评论0 收藏0
  • ES6学习手稿之基本类型扩展

    摘要:它是一个通用标准,奠定了的基本语法。年月发布了的第一个版本,正式名称就是标准简称。结语的基本扩展还有一些没有在这里详细介绍。 前言 ES6标准以及颁布两年了,但是,好像还没有完全走进我们的日常开发。这篇文章从ES6的基本类型扩展入手,逐步展开对ES6的介绍。 ECMAScript和JavaScript JavaScript是由Netscape创造的,该公司1996年11月将JavaSc...

    tommego 评论0 收藏0
  • ES6 知识整理一(es6快速入门)

    摘要:函数调用会在内存形成一个调用记录,又称调用帧,保存调用位置和内部变量等信息。等到运行结束,将结果返回到,的调用帧才会消失。方法用于将一组值,转换为数组。,和遍历数组方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的方法类似。 ES6 简介 ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。 let 和 const...

    elva 评论0 收藏0

发表评论

0条评论

W_BinaryTree

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<