标准库
Function
实例属性
⭐
length
函数形参的个数。
name
函数实例的名称。
实例方法
⭐
apply(thisArg, [args])
将方法应用在
thisArg
上,args
为参数数组。⭐
call(thisArg, arg1, arg2, ...)
将方法应用在
thisArg
上。⭐
bind(thisArg, arg1, arg2, ...)
返回一个与
thisArg
绑定的函数实例,之后的参数会直接作为函数参数。调用函数时,实参会视为额外的参数。toString()
返回函数的源代码
Object
实例属性
⭐
__proto__
实例对象上的原型指针,对于
new Object()
来说,它的__proto__
即为Object.prototype
。该属性因为性能原因已弃用,建议使用
Object.getPrototypeOf
/Reflect.getPrototypeOf
和Object.setPrototypeOf
/Reflect.setPrototypeOf
。
实例方法
⭐
constructor
Object
构造函数的引用。⭐
hasOwnProperty(prop)
判断是否含有指定属性。
⭐
isPrototypeOf(obj)
判断该对象是否存在于另一个对象的原型链上。
propertyIsEnumerable(prop)
判断指定的属性是否可枚举。
toLocaleString()
针对本地化的表示对象的字符串。
⭐
toString()
一个表示该对象的字符串。
⭐
valueOf()
返回对象所代表的值。可以手动覆盖这个方法来达到一些目的。
类属性
⭐
Object.assign(obj, src1, src2, ...)
将
src
的对象附加到obj
上,且这种附加是浅拷贝,只复制引用值。⭐
Object.create(proto, [obj])
以
proto
作为新对象的__proto__
创建对象,同时将obj
附加在新对象上。⭐
Object.defineProperty(obj, prop, descriptor)
该方法会直接
obj
定义一个新属性,或者修改一个对象的现有属性,并返回此对象。Object.defineProperties(obj, props)
直接在
obj
定义新的属性或修改现有属性,并返回该对象。⭐
Object.getPrototypeOf(obj)
返回
obj
的原型,即obj.__proto__
。Object.setPrototypeOf(obj, proto)
设置
obj
的原型为proto
。Object.is(obj1, obj2)
判断
obj1
和obj2
是否为同一个值。与
==
不同的是,===
运算符将数字 -0 和 +0 视为相等 ,而将Number.NaN
与NaN
视为不相等。Object.keys(obj)
返回
obj
可枚举属性名的字符串数组,与循环遍历的顺序一致。Object.values(obj)
返回
obj
可枚举属性值的字符串数组,与循环遍历的顺序一致。Object.entries(obj)
返回
obj
可枚举属性的键值对数组,与循环遍历的顺序一致。Object.freeze(obj)
冻结
obj
使之不会以任何方式被修改。Object.isFrozen(obj)
判断
obj
是否被冻结。Object.fromEntries(pairs)
该方法把键值对列表转换为一个对象。
Object.getOwnPropertyDescriptor(obj, prop)
返回
obj
的prop
属性的属性描述符Object.getOwnPropertyDescriptors(obj)
返回一个包含
obj
所有属性的属性描述符的对象。Object.getOwnPropertyNames(obj)
返回
obj
的所有属性名所组成的数组。Object.getOwnPropertySymbols(obj)
返回
obj
的所有Symbol
属性的数组。Object.preventExtensions(obj)
使
obj
永远不能再添加新的属性。Object.isExtensible(obj)
判断是否可以在
obj
上面添加新的属性。Object.seal(obj)
密封
obj
。密封一个对象会让这个对象变的不能添加新属性,且所有已有属性会变的不可配置。属性不可配置的效果就是属性变得不可删除,以及一个数据属性不能被重新定义成为访问器属性。Object.isSealed(obj)
判断一个对象是否被密封。
Array
构造方法
[element0, element1, ..., elementN]
new Array(element0, element1[, ...[, elementN]])
new Array(arrayLength)
实例属性
⭐
length
数组的元素个数
实例方法
at(index)
(实验性用法)返回下标所对应的元素。与下标语法不同的是,
index
可以为负数来表示倒数。⭐
concat(arr1, arr2, ...)
返回一个与所给数组合并的数组。原数组不会更改。
copyWithin(target[, start, end])
浅复制下标
start
到end
(不包括end
)的元素到从target
开始的位置,并返回这个数组。该方法会修改原数组,但不会改变原数组的长度。如果
target
大于等于length
,将会不发生拷贝。如果
start
被忽略,copyWithin
将会从 0 开始复制。如果
end
被忽略,copyWithin
方法将会一直复制至数组结尾(即length
)。⭐
slice([begin, end])
返回一个新的数组对象,这一对象是一个由
begin
和end
(不包括end
)决定的原数组的浅拷贝。如果省略
begin
,则slice
从索引 0 开始。如果
begin
超出原数组的索引范围,则会返回空数组。如果
end
被省略,或大于数组长度,则slice
会一直提取到原数组末尾。⭐
splice(start[, deleteCount, item1, item2, ...])
从
start
开始,删除deleteCount
个元素,然后在该位置向后添加元素。该方法会修改原数组,并返回包含被删除元素的数组。如果
deleteCount
被省略了,那么start
之后数组的所有元素都会被删除。如果
deleteCount
是 0 或者负数,则不移除元素。这种情况下,至少应添加一个新元素。⭐
fill(value[, start, end])
用
value
填充一个数组start
默认为 0 ,end
默认为length
。⭐
push(element1, ..., elementN)
在末尾添加元素,并返回数组的新长度。
⭐
pop()
删除最后一个元素,并返回该元素。
⭐
unshift(element1, ..., elementN)
在开头添加元素,并返回数组的新长度。
⭐
shift()
删除第一个元素,并返回该元素。
⭐
join([separator])
返回一个字符串,用
separator
将每个元素进行连接形成。⭐
includes(value[, fromIndex])
判断一个数组是否包含
value
。fromIndex
默认为 0 ,下同。⭐
indexOf(value[, fromIndex])
返回第一个值为
value
的索引。如果不存在返回 -1 。lastIndexOf(value[, fromIndex])
返回最后一个值为
value
的索引。如果不存在返回 -1 。⭐
every(callback(element[, index, array]), thisArg)
返回一个布尔值,判断是否每一个元素满足给定的测试函数。
thisArg
为执行callback
时使用的this
值,可选,下同。⭐
some(callback, thisArg)
返回一个布尔值,判断是否存在一个元素满足给定的测试函数。
⭐
filter(callback, thisArg)
利用测试函数来过滤数组中的元素,返回一个新数组。
⭐
find(callback, thisArg)
返回满足测试函数的第一个元素。否则返回
undefined
。⭐
findIndex(callback, thisArg)
返回满足测试函数的元素的索引。否则返回 -1 。
⭐
map(callback, thisArg)
返回一个新数组,每个元素将通过
callback
进行转换。⭐
reduce(callback(accumulator, currentValue[, index, array]), initialValue)
在初始值
initialValue
的基础上,对每一个元素执行callback
,accumulator
为当前累加的状态。如果没有提供
initialValue
,则使用第一个值。该参数可选,下同。比如数组求和可以写为
[1, 2, 3].reduce((accu, curr) => accu + curr, 0)
。reduceRight(callback(accumulator, currentValue[, index, array]), initialValue)
同
reduce
方法,却别在于从右向左累加。⭐
reverse()
逆转数组,该方法会修改原数组。
⭐
sort([compareFunction])
在数组自身上,根据
compareFunction
进行排序。compareFunction
中,返回小于 0 的值表示 "小于" ,0 表示等于,大于 0 的值表示 "大于" 。⭐
flat([depth])
将数组扁平化。比如
[1, [2]]
扁平化为[1, 2]
,深度为 1 。该方法返回一个新数组。可以指定
depth
为Infinity
来完全扁平化。⭐
flatMap(callback(currentValue[, index, array]), thisArg)
返回一个新数组,每个元素将通过
callback
进行转换,转换后还会进行深度为 1 的扁平化处理。⭐
forEach(callback(currentValue[, index, array]), thisArg)
对每一个元素执行一次
callback
。keys()
返回一个包含数组中每个索引键的迭代器对象。
values()
返回一个包含数组中每个元素的迭代器对象。
entrys()
返回一个包含数组中所有键值对的迭代器对象。
类方法
⭐
Array.from(arrayLike, mapFn, thisArg)
从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。每个元素会通过
mapFn
转化,该参数同thisArg
可选。⭐
Array.isArray(obj)
判断
obj
是否为数组实例。⭐
Array.of(element0, element1, ...)
根据所给元素创建数组。
Number
构造方法
new Number(value)
创建一个
Number
对象。Number(value)
返回一个数值。
实例方法
toExponential(fractionDigits)
返回一个指数计数法表示的字符串。
fractionDigits
指定小数点后保留位数。toFixed(digits)
返回一个字符串,四舍五入到小数点保留
digits
位。toPrecision(precision)
返回一个字符串,精确到
precision
位有效数字的字符串。
类属性
Number.EPSILON
大于 1 的最小的浮点数与 1 之间的差值。即 2 的 -52 次方。
Number.MAX_SAFE_INTEGER
表示在 JavaScript 中最大的安全整数(2^53 - 1)。
Number.MAX_VALUE
表示在 JavaScript 里所能表示的最大数值。
Number.MIN_SAFE_INTEGER
表示在 JavaScript 中最大的安全整数(- 2^53 + 1)。
Number.MIN_VALUE
表示在 JavaScript 里所能表示的最小数值。
Number.NaN
和
NaN
相同。Number.NEGATIVE_INFINITY
Number.POSITIVE_INFINITY
类方法
Number.isFinite(value)
Number.isInteger(value)
Number.isNaN(value)
Number.isSafeInteger(testValue)
Number.parseFloat(string)
给定值被解析成浮点数,如果无法被解析成浮点数,则返回
NaN
。Number.parseInt(string[, radix])
根据基数
radix
解析成整数,如果无法被解析成浮点数,则返回NaN
。
String
构造方法
new String(thing)
创建一个 String 对象。
String(thing)
返回一个原始类型字符串。
实例属性
length
实例方法
⭐
toLowerCase()
/toLocaleLowerCase([...locales])
返回一个新字符串,将所有大写字符转为小写。
⭐
toUpperCase()
/toLocaleUpperCase([...locales])
返回一个新字符串,将所有小写字符转为大写。
repeat(count)
返回一个指定数量连接起来的字符串。
concat(...strs)
返回一个拼接后的字符串。
出于性能,强烈建议使用赋值操作符(
+
+=
)代替concat
方法。padStart(maxLength[, padString])
返回一个新字符串,在字符串开头添加数个
padString
,使整个字符串长度控制为maxLength
。padEnd(maxLength[, padString])
返回一个新字符串,在字符串末尾添加数个
padString
,使整个字符串长度控制为maxLength
。trimStart()
/trimLeft()
返回一个新字符串,去除开头空白。
trimEnd()
/trimRight()
返回一个新字符串,去除末尾空白。
⭐
trim()
返回一个新字符串,去除两端空白。
⭐
split([separator[, limit]])
分割字符串。
separator
分隔符可以是字符串或正则表达式。limit
为分割片段数量。如果没有指定
separator
则会返回整个字符串。⭐
slice(beginIndex[, endIndex])
⭐
substring(indexStart[, indexEnd])
返回一个子字符串。与
slice
方法不同,索引值不可以为负数。但是indexStart
可以小于indexEnd
,执行方法的时候会取两者正确的大小顺序。⭐
startsWith(searchString[, position])
判断字符串开头是否匹配。
⭐
endsWith(searchString[, length])
判断字符串结尾是否匹配。
⭐
includes(searchString[, position])
判断一个字符串是否包含在另一个字符串中。
charAt(index)
charCodeAt(index)
返回 0 到 65535 之间的整数,表示给定索引处的 UTF-16 代码单元。
codePointAt(pos)
返回一个 Unicode 编码点值的非负整数。
normalize([form])
返回根据
form
标准化后的字符串。⭐
indexOf(searchValue [, fromIndex])
查找的字符串
searchValue
的第一次出现的索引,如果没有找到,则返回 -1 。lastIndexOf(searchValue[, fromIndex])
⭐
match(regexp)
返回一个字符串匹配正则表达式的字符串数组。
如果使用
g
标志,则将返回与完整正则表达式匹配的所有结果,但不会返回捕获组。如果未使用
g
标志,则仅返回第一个完整匹配及其相关的捕获组。⭐
matchAll(regexp)
返回一个包含所有匹配正则表达式的结果及分组捕获组的迭代器。
⭐
search(regexp)
返回正则表达式在字符串中首次匹配项的索引,否则返回 -1 。
⭐
replace(pattern, newSubStr|function)
替换字符串中匹配的字符串。第二个参数可以是字符串,或者一个处理匹配项的函数。
如果
pattern
是字符串,则只替换第一个匹配项。如果
pattern
是正则对象,则会应用每一个匹配项。⭐
replaceAll(pattern, newSubStr|function)
根据
pattern
替换所有匹配项。localeCompare(compareString[, locales[, options]])
返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。
valueOf()
类方法
String.fromCharCode(...nums)
返回由
nums
UTF-16 代码单元组成的字符串。String.fromCodePoint(...nums)
返回由
nums
Unicode 编码位置组成的字符串。String.raw(template, ...substitutions)
根据
template
参数创建新字符串,substitutions
是内插字符串。(具体见链接)String.raw `template`
返回一个字符串,
template
中可以使用${...}
。
Date
构造方法
new Date()
new Date(timestamp)
new Date(dateString)
new Date(year, month, date, hrs, min, sec, ms)
参数从右向左可选。
Date()
返回一个字符串。
类方法
Date.now()
返回自 1970-1-1 00:00:00 UTC 到当前时间的毫秒数。
Date.parse(dateString)
返回自 1970-1-1 00:00:00 UTC 到给定日期字符串所表示时间的毫秒数。
等同于
new Date(dateString).getTime()
。Date.UTC(year, month, date, hrs, min, sec, ms)
返回从 1970-1-1 00:00:00 UTC 到指定日期的的毫秒数。