1.Object
作为构造函数使用时,可以接受一个参数。如果该参数是一个对象,则直接返回这个对象;如果是一个原始类型的值,则返回该值对应的包装对象。
2.所有构造函数都有一个prototype属性,指向一个原型对象。凡是定义在Object.prototype对象上面的属性和方法,将被所有实例对象共享。
3.Object.keys
方法和Object.getOwnPropertyNames
方法很相似,一般用来遍历对象的属性。它们的参数都是一个对象,都返回一个数组,该数组的成员都是对象自身的(而不是继承的)所有属性名。它们的区别在于,Object.keys
方法只返回可枚举的属性,Object.getOwnPropertyNames
方法还返回不可枚举的属性名。
4.对象属性模型的相关方法:
- Object.getOwnPropertyDescriptor():获取某个属性的attributes对象。
- Object.defineProperty():通过attributes对象,定义某个属性。
- Object.defineProperties():通过attributes对象,定义多个属性。
- Object.getOwnPropertyNames():返回直接定义在某个对象上面的全部属性的名称。
5.控制对象状态的方法:
- Object.preventExtensions():防止对象扩展。
- Object.isExtensible():判断对象是否可扩展。
- Object.seal():禁止对象配置。
- Object.isSealed():判断一个对象是否可配置。
- Object.freeze():冻结一个对象。
- Object.isFrozen():判断一个对象是否被冻结。
6.原型链相关方法:
- Object.create():生成一个新对象,并该对象的原型。
- Object.getPrototypeOf():获取对象的Prototype对象。
7.Object
实例对象的方法,主要有以下六个:
valueOf()
:返回当前对象对应的值。toString()
:返回当前对象对应的字符串形式。toLocaleString()
:返回当前对象对应的本地字符串形式。hasOwnProperty()
:判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。isPrototypeOf()
:判断当前对象是否为另一个对象的原型。propertyIsEnumerable()
:判断某个属性是否可枚举。
8.不同数据类型的Object.prototype.toString
方法返回值如下:
Object.prototype.toString.call(value) =>
- 数值:返回
[object Number]
。 - 字符串:返回
[object String]
。 - 布尔值:返回
[object Boolean]
。 - undefined:返回
[object Undefined]
。 - null:返回
[object Null]
。 - 数组:返回
[object Array]
。 - arguments对象:返回
[object Arguments]
。 - 函数:返回
[object Function]
。 - Error对象:返回
[object Error]
。 - Date对象:返回
[object Date]
。 - RegExp对象:返回
[object RegExp]
。 - 其他对象:返回
[object Object]
。
9.Array
是JavaScript的内置对象,同时也是一个构造函数,可以用它生成新的数组。
10.Array.isArray
方法用来判断一个值是否为数组。它可以弥补typeof
运算符的不足。
11.Array实例的方法:
- valueOf()方法返回数组本身。
- toString()方法返回数组字符串形式
- push()方法用于在数组尾部添加一个或者多个元素,并返回添加新元素后数组的长度,注意,该方法会改变数组长度。push()还可以向对象添加属性,且对象有一个length属性(
var a = {a: 1}; [].push.call(a, 2); a // {a:1, 0:2, length: 1} [].push.call(a, [3]); a // {a:1, 0:2, 1:[3], length: 2}
)
- pop()方法删除数组最后一个元素,并返回该元素。该方法改变原数组。
- join()方法以参数作为分隔符,将所有数组成员组成一个字符串返回。无参数则以逗号隔开。
- concat()方法用于多个数组合并,将新数组添加到原数组尾部,返回一个新的数组,原数组不变。(如果不提供参数,
concat
方法返回当前数组的一个浅拷贝。所谓“浅拷贝”,指的是如果数组成员包括复合类型的值(比如对象),则新数组拷贝的是该值的引用。) - shift()方法用于删除数组第一个元素。并返回该元素。
- unshift()方法用于在数组第一个位置添加元素。返回新数组的长度。
- reserve()方法用于颠倒数组中的元素的顺序,返回改变后的数组。
- slice()方法用于提取原数组的一部分,返回新数组,原数组不变。第一个参数是开始位置,第二个参数为终止位置(该位置的元素不包含在内),第二个参数省略则一直返回原数组最后一个成员。参数为负,则表示倒数计算的位置。
- splice()方法删除原数组一部分成员,并可以在删除的位置添加新成员,返回值为删除的元素,该方法改变原数组。第一个参数为删除开始位置,第二个参数是删除的个数。如果后面还有参数则是添加的新成员。起始位置如果是负数,就表示从倒数位置开始删除。如果只是单纯地插入元素,
splice
方法的第二个参数可以设为0。如果只提供第一个参数,等同于将原数组在指定位置拆分成两个数组。 sort()
方法对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变。如果想让sort
方法按照自定义方式排序,可以传入一个函数作为参数,表示按照自定义方法进行排序。该函数本身又接受两个参数,表示进行比较的两个元素。如果返回值大于0
,表示第一个元素排在第二个元素后面;其他情况下,都是第一个元素排在第二个元素前面。
时间: 2024-10-26 14:30:04