JavaScript常用内置对象API

前言

JavaScript 中的引用类型有非常多的属性和方法,随着标准的更新还在不断的增加。很多有用的属性或者方法自己不了解,或者看过又忘记了,很难运用到自己的编码中,虽然使用时最好的记忆,不过还是要加深在脑中的映像,在写代码的时候才能想到使用。本文整理一下各个常用引用类型的属性和方法,经常拿出来看一看,增加自己的记忆。不收录废弃和试验性属性和方法。

Object

JavaScript 中的所有对象都来自 Object ;所有对象从 Object.prototype 继承方法和属性,尽管它们可能被覆盖。例如,其他构造函数的原型将覆盖 constructor 属性并提供自己的 toString() 方法。 Object 原型对象的更改将传播到所有对象,除非受到这些更改的属性和方法将沿原型链进一步覆盖。

JvaScript 中,几乎所有的对象都是 Object 类型的实例,它们都会从 Objet.prototype 继承属性和方法。 Object 构造函数为给定值创建一个对象包装器。 Object 构造函数,会根据给定的参数创建对象,具体有以下情况:

  • 如果给定值是 nullundefined ,将会创建并返回一个空对象
  • 如果传进去的是一个基本类型的值,则会构造其包装类型的对象
  • 如果传进去的是引用类型的值,仍然会返回这个值,经他们复制的变量保有和源对象相同的引用地址
  • 当以非构造函数形式被调用时, Object 的行为等同于 new Object()
方法/属性 描述
Object.length 值为 1 的属性
Object.prototype 所有对象的原型,可以为所有 Object 类型的对象添加属性。
Object.assign() 将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
Object.create() 创建一个新对象,使用现有的对象来提供新创建的对象的 [[prototype]] 。第二个可选参数可以为新对象添加属性特性默认为 false 的属性,
Object.defineProperty() 在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。
Object.defineProperties() 给对象添加多个属性并分别指定它们的配置。
Object.entries() 返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)。
Object.freeze() 冻结对象:其他代码不能删除或更改任何属性。冻结一个对象后该对象的原型也不能被修改。返回和传入的参数相同的对象。
Object.getOwnPropertyDescriptor() 返回指定对象上一个自有属性对应的属性描述符。(自有属性指的是直接赋予该对象的属性,不需要从原型链上进行查找的属性)
Object.getOwnPropertyNames() 返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括 Symbol 值作为名称的属性)组成的数组。
Object.getOwnPropertySymbols() 返回一个给定对象自身的所有 Symbol 属性的数组。
Object.getPrototypeOf() 返回指定对象的原型(内部 [[Prototype]] 属性的值)
Object.is() 比较两个值是否相同。所有 NaN 值都相等, +0-0 不相等。(与==和===都不同)
Object.isExtensible() 判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。返回一个 Boolean
Object.isFrozen() 判断一个对象是否被冻结。
Object.isSealed() 判断一个对象是否被密封。在 ES5 中,如果这个方法的参数不是一个对象(一个原始类型),那么它会导致 TypeError 。在 ES2015 中,非对象参数将被视为是一个密封的普通对象,只返回 true
Object.keys() 返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
Object.preventExtensions() 让一个对象变的不可扩展,也就是永远不能再添加新的属性。该方法使得目标对象的 [[prototype]] 不可变;任何重新赋值 [[prototype]] 操作都会抛出 TypeError 。一旦将对象变为不可扩展的对象,就再也不能使其可扩展。
Object.seal() 封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置,返回被密封对象的引用。当前属性的值只要原来是可写的就可以改变。不会影响从原型链上继承的属性。但 __proto__ 属性的值也会不能修改。
Object.setPrototypeOf() 设置一个指定的对象的原型 ( 即, 内部 [[Prototype]] 属性)到另一个对象或 null 。更改 [[prototype]] 在浏览器上是个很慢的操作,对性能有要求不建议使用。
Object.value() 返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用 for...in 循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。
Object.prototype.constructor 返回创建实例对象的 Object 构造函数的引用。注意,此属性的值是对函数本身的引用,而不是一个包含函数名称的字符串。对原始类型来说,如 1true"test" ,返回基本包装类型的构造函数,该值只可读。
Object.prototype.hasOwnProperty() 返回一个布尔值,指示对象自身属性中是否具有指定的属性
Object.prototype.isPrototypeOf() 用于测试一个对象是否存在于另一个对象的原型链上。如果调用对象为 undefinednull ,会抛出 TypeError
Object.prototype.propertyIsEnumerable() 返回一个布尔值,表示指定的自身属性是否可枚举。可以用于数组对象
Object.prototype.toLocaleString() 返回调用 toString() 的结果
Object.prototype.toString() 返回一个表示该对象的字符串。除了 Object 创建的对象,其他对象的该函数都被重写, Object.prototype.toString() 可以用来检测对象类型
Object.prototype.valueOf() 返回指定对象的原始值,一般不需要用到,不同对象的调用结果查看 MDN

Array

方法/属性 描述
Array.from() 从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。第二个参数为新数组元素调用的函数,第三个参数为函数调用时的 this
Array.isArray() 判断一个对象是否是数组对象
Array.of() 创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
Array.prototype.constructor 所有的数组实例都继承了这个属性,它的值就是 Array ,表明了所有的数组都是由 Array 构造出来的。
Array.prototype Array.prototype 本身也是一个 Array
Array.prototype.length 返回或设置一个数组中的元素个数,该值是一个无符号 32-bit 整数, Array.prototype 本身是一个空数组
Array.prototype.copyWithin() 浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。
Array.prototype.fill() 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
Array.prototype.pop() 从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。
Array.prototype.push() 将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
Array.prototype.reverse() 将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。
Array.prototype.shift() 从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
Array.prototype.sort() 用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列时构建的。由于它取决于具体实现,因此无法保证排序的时间和空间复杂性。
Array.prototype.splice() 通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被删除的内容。此方法会改变原数组
Array.prototype.unshift() 将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组)。
Array.prototype.concat() 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
Array.prototype.includes() 用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true ,否则返回 false 。比较字符串和字符时区分大小写
Array.prototype.join() 将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
Array.prototype.slice() 返回一个新的数组对象,这一对象是一个由 beginend 决定的原数组的浅拷贝(包括 begin ,不包括 end )。原始数组不会被改变。
Array.prototype.toString() 返回一个由所有数组元素组合而成的字符串,用逗号分隔。覆盖了原型链上的 Object.prototype.toString() 方法。
Array.prototype.indexOf() 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回 -1
Array.prototype.lastIndexOf() 返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1 。从数组的后面向前查找,从 fromIndex 处开始。
Array.prototype.forEach() 对数组的每个元素执行一次给定的函数。
Array.prototype.entries() 返回一个新的 Array Iterator 对象,该对象包含数组中每个索引的键/值对。
Array.prototype.every() 测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。若收到一个空数组,此方法在一切情况下都会返回 true
Array.prototype.some() 测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个布尔类型的值。如果用一个空数组进行测试,在任何情况下它返回的都是 false
Array.prototype.filter() 创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
Array.prototype.find() 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
Array.prototype.findIndex() 找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回 -1
Array.prototype.keys() 返回一个包含数组中每个索引键的 Array Iterator 对象。
Array.prototype.map() 创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
Array.prototype.reduce() 从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
Array.prototype.reduceRight() 从右到左为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值
Array.prototype.values() 返回一个新的 Array Iterator 对象,该对象包含数组每个索引的值

String

方法/属性 描述
String.fromCharCode() 返回由指定的 UTF-16 代码单元序列创建的字符串。范围介于 065535(0xFFFF) 之间。 大于 0xFFFF 的数字将被截断。 不进行有效性检查。
String.fromCodePoint() 静态方法返回使用指定的代码点序列创建的字符串。
String.raw() 通过模板字符串创建字符串。
String.prototype.length 该属性返回字符串中字符编码单元的数量。 JavaScript 使用 UTF-16 编码,该编码使用一个 16 比特的编码单元来表示大部分常见的字符,使用两个代码单元表示不常用的字符。因此 length 返回值可能与字符串中实际的字符数量不相同。空字符串的 length0 。静态属性 String.length 返回 1
N 用于访问第 N 个位置的字符,其中 N 是小于 length0 之间的正整数。这些属性都是“只读”性质,不能编辑。
String.prototype.charAt() 从一个字符串中返回指定的字符,辅助平面的字符无法正确输出,详见文章搞懂字符编码
String.prototype.charCodeAt() 返回 065535 之间的整数,表示给定索引处的 UTF-16 代码单元
String.prototype.codePointAt() 返回 一个 Unicode 编码点值的非负整数。
String.prototype.concat() 将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。
String.prototype.includes() 判断一个字符串是否包含在另一个字符串中,根据情况返回 truefalse 。区分大小写。
String.prototype.endsWith() 判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 truefalse 。区分大小写
String.prototype.indexOf() 返回调用它的 String 对象中第一次出现的指定值的索引,从 fromIndex 处进行搜索。如果未找到该值,则返回 -1
String.prototype.lastIndexOf() 返回调用 String 对象的指定值最后一次出现的索引,在一个字符串中的指定位置 fromIndex 处从后向前搜索。如果没找到这个特定值则返回 -1
String.prototype.localeCompare() 返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。
String.prototype.match() 检索返回一个字符串匹配正则表达式的的结果。
String.prototype.normalize() 按照指定的一种 Unicode 正规形式将当前字符串正规化。(如果该值不是字符串,则首先将其转换为一个字符串)。
String.prototype.padEnd() 会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充。
String.prototype.padStart() 用另一个字符串填充当前字符串(重复,如果需要的话),以便产生的字符串达到给定的长度。填充从当前字符串的开始(左侧)应用的。
String.prototype.repeat() 构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。
String.prototype.replace() 返回一个由替换值( replacement )替换一些或所有匹配的模式( pattern )后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。原字符串不会改变。
String.prototype.search() 执行正则表达式和 String 对象之间的一个搜索匹配。如果匹配成功,返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1
String.prototype.slice() 提取某个字符串的一部分,并返回一个新的字符串( end 不计入),且不会改动原字符串。
String.prototype.split() 使用指定的分隔符字符串将一个 String 对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。 用空字符串(“)作为分隔符,字符串分隔是以 16 比特的 UTF-16 代码单元为单位
String.prototype.startsWith() 判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 truefalse
String.prototype.substr() 返回一个字符串中从指定位置开始到指定字符数的字符。非标准方法,未来可能被移除,用 substring 代替
String.prototype.substring() 提取从 indexStartindexEnd (不包括)之间的字符。不改变原字符串
String.prototype.toLocaleLowerCase() 根据任何指定区域语言环境设置的大小写映射,返回调用字符串被转换为小写的格式。
String.prototype.toLocaleUpperCase() 根据本地主机语言环境把字符串转换为大写格式,并返回转换后的字符串。
String.prototype.toLowerCase() 将调用该方法的字符串值转为小写形式,并返回。
String.prototype.toString() String 对象覆盖了Object 对象的 toString 方法;并没有继承 Object.toString() 。对于 String 对象, toString 方法返回该对象的字符串形式,和 String.prototype.valueOf() 方法返回值一样。
String.prototype.toUpperCase() 将调用该方法的字符串转为大写形式并返回(如果调用该方法的值不是字符串类型会被强制转换)。
String.prototype.trim() 从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 ( space, tab, no-break space 等) 以及所有行终止符字符(如 LFCR 等)。
String.prototype.trimStart() 从字符串的开头删除空格。 trimLeft() 是此方法的别名。
String.prototype.trimEnd() 从一个字符串的末端移除空白字符。 trimRight() 是这个方法的别名。
String.prototype.valueOf() 返回特定对象的原始值。重写 Object.prototype.valueOf 方法。

Function

每个 JavaScript 函数实际上都是一个 Function 对象。运行 (function(){}).constructor === Function // true 便可以得到这个结论。

我们也可以用构造函数的形式 new Function 动态创建函数(效果类似于 eval ,也会产生安全和性能问题,但是远小于 eval ),这种形式可以接收任意数量的参数,但最胡一个参数会作为新函数的函数体,而前面的参数就是新函数的参数( new 操作符可以省略)。使用 Function 构造器生成的 Function 对象是在函数创建时解析的。这比你使用函数声明或者函数表达式并在你的代码中调用更为低效,因为使用后者创建的函数是跟其他代码一起解析的,即这种语 法会导致解析两次代码(第一次是解析常规 ECMAScript 代码,第二次是解析传入构造函数中的字符串,所以会对性能造成影响。

Function.prototype 本身就是函数,可以直接调用,接受任何参数并返回 undefined

var sum = new Function("num1", "num2", "return num1 + num2");
sum(1, 2) // 3 不推荐。mdn上说直接调用Function构造函数创建的函数只能在全局作用域下调用,但我的测试似乎在函数内部也可以正常调用
方法/属性 描述
Function.prototype.caller caller 这个属性函数实例和 Function.prototype 都有, Function 构造函数没有,他的该属性是从 Function.prototype 上继承的,该属性不是标准上的属性,但是大部分引擎都实现了它。如果一个函数 f 是在全局作用域内被调用的,则 f.callernull ,相反,如果一个函数是在另外一个函数作用域内被调用的,则 f.caller 指向调用它的那个函数.该属性的常用形式 arguments.callee.caller 替代了被废弃的 arguments.caller 。该属性严格模式下不可用( arguments.callee 在严格模式下也不可用)
Function.name 该属性 Function 构造函数, Function.prototype 和 实例都有, writablefalseenumerablefalseconfigurabletrue ,返回一个函数声明的名称。如果是用 new Function() 或者 直接调用 Function () 创建的函数返回的是 anonymous 。函数表达式中的匿名函数也是可以命名的。 bind 创建的函数的返回值为 bound namesettergetter 函数返回值为 set nameget name 。如果函数原型上有 name 属性了,该属性就不会在函数上创建了。
Function.length 函数有多少个必须要传入的参数,即形参的个数。形参的数量不包括剩余参数个数,仅包括第一个具有默认值之前的参数个数。与之对比的是, arguments.length 是函数被调用时实际传参的个数。 Function.length1Function.length0
Function.prototype.apply() 详见 apply和call, bing方法的应用
Function.prototype.bind() 详见 apply和call, bing方法的应用
Function.prototype.call() 详见 apply和call, bing方法的应用
Function.prototype.isGenerator() 判断函数是否为一个生成器
Function.prototype.toString() 返回一个表示当前函数源代码的字符串。覆盖了 Object.prototype.toString 方法。

Date

创建一个 JavaScript Date 实例,该实例呈现时间中的某个时刻。 Date 对象则基于 Unix Time Stamp ,即自 1970年1月1日(UTC) 起经过的毫秒数。创建一个新 Date 对象的唯一方法是通过 new 操作符,若将它作为常规函数调用(即不加 new 操作符),将返回一个字符串,而非 Date 对象。

//语法,四种参数形式
new Date(); //如果没有提供参数,那么新创建的Date对象表示实例化时刻的日期和时间。
new Date(value); //一个 Unix 时间戳(Unix Time Stamp),它是一个整数值,表示自1970年1月1日00:00:00 UTC(the Unix epoch)以来的毫秒数,忽略了闰秒。请注意大多数 Unix 时间戳功能仅精确到最接近的秒。
new Date(dateString); 表示日期的字符串值。该字符串应该能被 Date.parse() 正确方法识别(即符合 IETF-compliant RFC 2822 timestamps 或 version of ISO8601)。由于浏览器之间的差异,强烈不推荐。
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]); //当至少提供了年份与月份时,这一形式的 Date() 返回的 Date 对象中的每一个成员都来自下列参数。没有提供的成员将使用最小可能值(对日期为1,其他为0)。
方法/属性 描述
Date.prototype 允许为 Date 对象添加属性。
Date.length 值是 7 。这是该构造函数可接受的参数个数。
Date.now() 返回自 1970 年 1 月 1 日 00:00:00 (UTC) 到当前时间的毫秒数。
Date.parse() 解析一个表示某个日期的字符串,并返回从 1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的 UTC 时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如: 2015-02-31 ),则返回值为 NaN 。参数为一个符合 RFC2822ISO 8601 日期格式的字符串(其他格式也许也支持,但结果可能与预期不符)。推荐始终手动解析日期字符串
Date.prototype.constructor 默认为 Date 构造函数
Date.prototype.getDate() 根据本地时间,返回一个指定的日期对象为一个月中的哪一日(从 1 ~ 31 )。
Date.prototype.getDay() 根据本地时间,返回一个具体日期中一周的第几天, 0 表示星期天。
Date.prototype.getFullYear() 根据本地时间返回指定日期的年份。此方法替代 getYear()
Date.prototype.getHours() 根据本地时间,返回一个指定的日期对象的小时。
Date.prototype.getMilliseconds() 根据本地时间,返回一个指定的日期对象的毫秒数。
Date.prototype.getMinutes() 根据本地时间,返回一个指定的日期对象的分钟数。
Date.prototype.getMonth() 根据本地时间返回指定日期对象的月份 (0-11)
Date.prototype.getSeconds() 根据本地时间返回指定日期对象的秒数 (0-59)
Date.prototype.getTime() 返回一个时间的格林威治时间数值,从 1970-1-1 00:00:00 UTC (协调世界时)到该日期经过的毫秒数,对于 1970-1-1 00:00:00 UTC 之前的时间返回负值。你可以使用这个方法把一个日期时间赋值给另一个 Date 对象。这个方法的功能和 valueOf() 方法一样。
Date.prototype.getTimezoneOffset() 返回协调世界时(UTC)相对于当前时区的时间差值,单位为分钟。
Date.prototype.getUTCDate() 以世界时为标准,返回一个指定的日期对象为一个月中的第几天, 1-31
Date.prototype.getUTCDay() 以世界时为标准,返回一个指定的日期对象为一星期中的第几天,其中 0 代表星期天。 0-6
Date.prototype.getUTCFullYear() 以世界时为标准,返回一个指定的日期对象的年份(四位数)。
Date.prototype.getUTCHours() 以世界时为标准,返回一个指定的日期对象的小时数。 0-23
Date.prototype.getUTCMilliseconds() 以世界时为标准,返回一个指定的日期对象的毫秒数。 0-999
Date.prototype.getUTCMinutes() 以世界时为标准,返回一个指定的日期对象的分钟数。 0-59
Date.prototype.getUTCMonth() 以世界时为标准,返回一个指定的日期对象的月份,它是从 0 开始计数的( 0 代表一年的第一个月)。
Date.prototype.getUTCSeconds() 以世界时为标准,返回一个指定的日期对象的秒数。 0-59
Date.prototype.setDate() 根据本地时间来指定一个日期对象的天数。
Date.prototype.setFullYear() 根据本地时间为指定日期对象设置完整年份(四位数年份是四个数字)。
Date.prototype.setHours() 根据本地时间为指定日期对象设置小时数。
Date.prototype.setMilliseconds() 根据本地时间为指定日期对象设置毫秒数。
Date.prototype.setMinutes() 根据本地时间为指定日期对象设置分钟数。
Date.prototype.setMonth() 根据本地时间为指定日期对象设置月份。
Date.prototype.setSeconds() 根据本地时间为指定日期对象设置秒数。
Date.prototype.setTime() 通过指定从 1970-1-1 00:00:00 UTC 开始经过的毫秒数来设置日期对象的时间,对于早于 1970-1-1 00:00:00 UTC 的时间可使用负值。
Date.prototype.setUTCDate() 根据世界时设置 Date 对象中月份的一天 ( 1 ~ 31 )。
Date.prototype.setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
Date.prototype.setUTCHours() 根据世界时设置 Date 对象中的小时 ( 0 ~ 23 )。
Date.prototype.setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 ( 0 ~ 999 )。
Date.prototype.setUTCMinutes() 根据世界时设置 Date 对象中的分钟 ( 0 ~ 59 )。
Date.prototype.setUTCMonth() 根据世界时设置 Date 对象中的月份 ( 0 ~ 11 )。
Date.prototype.setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 ( 0 ~ 59 )。
Date.prototype.toDateString() 以美式英语和人类易读的形式返回一个日期对象日期部分的字符串。
Date.prototype.toISOString() 返回一个 ISO(ISO 8601 Extended Format) 格式的字符串: YYYY-MM-DDTHH:mm:ss.sssZ 。时区总是 UTC (协调世界时),加一个后缀 Z 标识。
Date.prototype.toJSON() 返回一个 JSON 格式字符串(使用 toISOString() ),表示该日期对象的值。默认情况下,这个方法常用于 JSON 序列化 Date 对象。
Date.prototype.toLocaleDateString() 返回该日期对象日期部分的字符串,该字符串格式因不同语言而不同。新增的参数 localesoptions 使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现。
Date.prototype.toLocaleString() 返回该日期对象的字符串,该字符串格式因不同语言而不同。新增的参数 localesoptions 使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现。覆盖了 Object.prototype.toLocaleString() 方法。
Date.prototype.toLocaleTimeString() 返回该日期对象时间部分的字符串,该字符串格式因不同语言而不同。新增的参数 localesoptions 使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现
Date.prototype.toString() 返回一个字符串,表示该 Date 对象。覆盖了 Object.prototype.toString() 方法。
Date.prototype.toTimeString() 以人类易读形式返回一个日期对象时间部分的字符串,该字符串以美式英语格式化。
Date.prototype.toUTCString() 把一个日期对象转换为一个以 UTC 时区计时的字符串。
Date.prototype.valueOf() 返回从 1970年1月1日0时0分0秒 (UTC,即协调世界时)到该日期的毫秒数。

Math

Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法。 Math 不是一个函数对象。 Math 用于 Number 类型。它不支持 BigInt

方法/属性 描述
Math.E 静态属性表示自然对数的底数(或称为基数), e ,约等于 2.718
Math.LN2 静态属性表示 2 的自然对数,约为 0.693
Math.LN10 10 的自然对数,约等于 2.303
Math.LOG2E 2 为底的 e 的对数,约等于 1.443
Math.LOG10E 10 为底的 e 的对数,约等于 0.434
Math.PI 圆周率,一个圆的周长和直径之比,约等于 3.14159
Math.SQRT1_2 二分之一 ½ 的平方根,约等于 0.707
Math.SQRT2 2 的平方根,约等于 1.414
Math.abs(x) 返回一个数的绝对值
Math.acos(x) 返回一个数的反余弦值,弧度
Math.acosh(x) 返回一个数的反双曲余弦值,弧度
Math.asin(x) 返回一个数的反正弦值,弧度
Math.asinh(x) 返回一个数的反双曲正弦值,弧度
Math.atan(x) 返回一个数的反正切值,弧度
Math.atanh(x) 返回一个数的反双曲正切值,弧度
Math.atan2(y, x) 返回 y/x 的反正切值。
Math.cbrt(x) 返回一个数的立方根
Math.ceil(x) 向上取整
Math.clz32(x) 返回一个 32 位(二进制)整数的前导 0 的数量
Math.cos(x) 返回一个数的余弦值,弧度
Math.cosh(x) 返回一个数的双曲余弦值,弧度
Math.exp(x) 返回欧拉常数的参数次方
Math.expm1(x) 返回 exp(x) - 1 的值
Math.floor(x) 向下取整
Math.fround(x) 返回最接近一个数的单精度浮点型表示。
Math.hypot([x[, y[, …]]]) 返回所有参数平方和的平方根
Math.imul(x, y) 返回 32 位(二进制)整数乘法的结果
Math.log(x) 返回一个数的自然对数 ln(x)
Math.log10(x) 返回一个数的 10 为底的对数
Math.log2(x) 返回一个数的 2 为底的对数
Math.max([x[, y[, …]]]) 返回一组数中的最大值,如果给定的参数中至少有一个参数无法被转换成数字,则会返回 NaN 。如果没有参数,则结果为 – Infinity
Math.min([x[, y[, …]]]) 返回零个或更多个数值的最小值。如果任一参数不能转换为数值,则返回 NaN 。如果没有参数,结果为 Infinity
Math.pow(x, y) 返回 xy 次幂
Math.random() 返回 01 之间的伪随机数
Math.round(x) 返回四舍五入后的整数
Math.sign(x) 返回一个数的符号,正负或者 0
Math.sin(x) 返回一个数的正弦值,弧度
Math.sinh(x) 返回一个数的双曲正弦值,弧度
Math.sqrt(x) 返回一个数的平方根
Math.tan(x) 返回一个数的正切值,弧度
Math.tanh(x) 返回一个数的双曲正切值,弧度
Math.trunc(x) 返回一个数的整数部分

Number

Number 的很多属性都是跟 JavaScript 使用的双精度浮点数相关的,具体内容可以看JavaScript中的Number

方法/属性 描述
Number.EPSILON 两个可表示( representable )数之间的最小间隔,接近于 2^{-52}
Number.MAX_SAFE_INTEGER JavaScript 中的最大安全整数, 2^{53} -1
Number.MAX_VALUE MAX_VALUE 属性值接近于 1.79E+308 。大于 MAX_VALUE 的值代表 Infinity
Number.MIN_SAFE_INTEGER 最小安全整数 -(2^{53} -1)
Number.MIN_VALUE JavaScript 中能表示的最小正数,值约为 5e-324 。小于 MIN_VALUE (“ underflow values “) 的值将会转换为 0
Number.NaN not a number 不是一个数字,和全局对象的属性 NaN 相同
Number.NEGATIVE_INFINITY 表示负无穷大,和全局对象的属性 INFINITY 的负值相同
Number.POSITIVE_INFINITY 表示正无穷大,全局对象 Infinity 属性的值相同。
Number.prototype 所有 Number 实例都继承自 Number.prototype 。修改 Number 构造函数的原型对象会影响到所有 Number 实例。
Number.isNaN() 确定传递的值是否为 NaN ,并且检查其类型是否为 Number 。它是原来的全局 isNaN() 的更稳妥的版本。 Number.isNaN() 不会自行将参数转换成数字,只有在参数是值为 NaN 的数字时,才会返回 true
Number.isFinite() 用来检测传入的参数是否是一个有穷数( finite number )。和全局的 isFinite() 函数相比,这个方法不会强制将一个非数值的参数转换成数值,这就意味着,只有数值类型的值,且是有穷的( finite ),才返回 true
Number.isInteger() 用来判断给定的参数是否为整数。注意 NaN 和正负 Infinity 不是整数。
Number.isSafeInteger() 判断传入的参数值是否是一个“安全整数”(safe integer)。安全整数范围是从 -(2^{53} -1)2^{53} -1 之间的正数,闭合区间
Number.parseFloat() 把一个字符串解析成浮点数。该方法与全局的 parseFloat() 函数相同,并且处于 ECMAScript 6 规范中(用于全局变量的模块化)。
Number.parseInt() 依据指定基数,把字符串解析成整数。这个方法和全局的 parseInt() 函数具有一样的函数功能,并且处于 ECMAScript 6 规范中(用于全局变量的模块化)。
我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章