数组和对象
约 1210 字大约 4 分钟
2022-04-16
提问
- 对象有哪些原生方法?
- 数组有哪些原生方法?
- 什么是类数组?
对象的原生方法
Object.assign()通过复制一个或多个对象来创建一个新的对象Object.create()使用指定的原型对象和属性创建一个新对象Object.defineProperty()给对象添加一个属性并指定该属性的配置Object.defineProperties()给对象添加多个属性并分别指定它们的配置Object.entries()返回给定对象自身可枚举属性的[key, value]数组Object.freeze()冻结对象,其他代码不能删除或更改任何属性Object.getOwnPropertyNames()返回一个包含了指定对象所有可枚举或不可枚举的属性名的数组Object.getOwnPropertySymbols()返回一个包含了指定对象自身所有的符号属性Object.getPrototypeOf()返回指定对象的原型对象Object.is()比较两个值是否相同。(所有 NaN值都相等。)Object.keys()返回一个包含所有给定对象自身可枚举属性名称的数组Object.preventExtensions()防止对象的任何扩展Object.seal()防止其他代码删除对象的属性Object.values()返回给定对象自身可枚举值的数组
数组的原生方法
静态方法
Array.from()从类数组对象或可迭代对象中创建一个新的数组实例Array.isArray()判断某个变量是否是一个数组对象Array.of()根据一组参数来创建新的数组实例
实例方法
Array.prototype.concat()合并两个或多个数组,并返回一个新的数组Array.prototype.copyWithin浅复制数组的一部分到同一数组的另一个返回,并返回它,不会改变原数组的长度Array.prototype.entries()返回一个新的Array Iterator对象,对象包含数组中的每个索引的键值对Array.prototype.every()测试一个数组组内的所有元素是否都能通过某个指定函数的测试,并返回一个布尔值Array.prototype.fill()用一个固定值填充一个数组中的全部元素Array.prototype.filter()创建一个新数组,包含通过所提供的函数实现的测试的所有元素Array.prototype.find()返回数组中满足提供的测试函数的第一个元素,否则返回 undefinedArray.prototype.findIndex()返回数组中满足提供的测试函数的第一个元素的索引,否则返回 -1Array.prototype.flat()按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回Array.prototype.flatMap()使用映射函数映射每一个元素,然后将结果压缩成一个新数组Array.prototype.forEach()对数组的每一个元素执行一次给定的函数Array.prototype.includes()判断一个数组是否包含一个指定的值,返回一个布尔值Array.prototype.indexOf()返回在数组中可以找到一个给定元素的第一个索引,不存在则返回 -1Array.prototype.join()将一个数组的所有元素链接成一个字符串并返回Array.prototype.keys()返回一个包含数组中每个索引建的Array Iterator对象Array.prototype.lastIndexOf()返回指定元素在数组中的最后一个索引,不存在则返回 -1Array.prototype.map()返回一个数组,其结果是该数组的每个元素是调用一次提供的函数后的返回值Array.prototype.pop()从数组中删除最后一个元素,并返回该元素的值Array.prototype.push()将一个或多个元素添加到数组的末尾,并返回该数组的新长度Array.prototype.reduce()对数组中的每个元素指定一个指定的reducer函数(从左向右),将其结果汇总为单个返回值Array.prototype.reduceRight()类似于reduce(),但是是从右向左Array.prototype.reverse()将数组中元素的位置颠倒,并返回该数组。该方法会改变原数组Array.prototype.shift()从数组中删除第一个元素,并返回该元素的值Array.prototype.slice()提取原数组的一部分并返回一个新数组Array.prototype.some()测试数组中是不是至少有一个元素通过了提供的测试函数Array.prototype.sort()对数组元素进行原地排序并返回此数组Array.prototype.splice()通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容Array.prototype.unshift()将一个或多个元素添加到数组的头部,并返回该数组的新长度Array.prototype.values()返回一个新的Array Iterator对象,该对象包含数组每个索引的值。
类数组
类数组是指 一个拥有 length 属性 和 若干索引属性的对象。
类数组对象和数组类似,但不能调用数组的方法。
常见的类数组有, arguments 和 DOM方法返回的结果
