首页 > 代码库 > JavaScript小知识点总结:标准库

JavaScript小知识点总结:标准库

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,表示第一个元素排在第二个元素后面;其他情况下,都是第一个元素排在第二个元素前面。

JavaScript小知识点总结:标准库