JavaScript学习笔记:内置API
本文更新于2020-11-30。
说明:下文中,大写为自定义变量(个别大写的类型除外),根据实际情况填写。使用<>
引起表示内容可选,|
表示使用左侧或右侧内容,...
表示重复之前内容。
本文只说明简要的使用,更详细的使用可参阅MDN文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
- arguments
- arguments.callee
- arguments.length
- Array
- ARRAY.length
- Array.prototype.concat
- Array.prototype.every
- Array.prototype.filter
- Array.prototype.forEach
- Array.prototype.indexOf
- Array.prototype.join
- Array.prototype.lastIndexOf
- Array.prototype.map
- Array.prototype.pop
- Array.prototype.push
- Array.prototype.reduce
- Array.prototype.reduceRight
- Array.prototype.reverse
- Array.prototype.shift
- Array.prototype.slice
- Array.prototype.some
- Array.prototype.sort
- Array.prototype.splice
- Array.prototype.toLocaleString
- Array.prototype.toString
- Array.prototype.unshift
- Boolean
- Boolean.prototype.toString
- Boolean.prototype.valueOf
- Date
- Date.now
- Date.parse
- Date.UTC
- Date.prototype.getDate
- Date.prototype.getDay
- Date.prototype.getFullYear
- Date.prototype.getHours
- Date.prototype.getMilliseconds
- Date.prototype.getMinutes
- Date.prototype.getMonth
- Date.prototype.getSeconds
- Date.prototype.getTime
- Date.prototype.getTimezoneOffset
- Date.prototype.getUTCDate
- Date.prototype.getUTCDay
- Date.prototype.getUTCFullYear
- Date.prototype.getUTCHours
- Date.prototype.getUTCMilliseconds
- Date.prototype.getUTCMinutes
- Date.prototype.getUTCMonth
- Date.prototype.getUTCSeconds
- Date.prtotype.setDate
- Date.prototype.setFullYear
- Date.prototype.setHours
- Date.prototype.setMilliseconds
- Date.prototype.setMinutes
- Date.prototype.setMonth
- Date.prototype.setSeconds
- Date.prototype.setTime
- Date.prtotype.setUTCDate
- Date.prototype.setUTCFullYear
- Date.prototype.setUTCHours
- Date.prototype.setUTCMilliseconds
- Date.prototype.setUTCMinutes
- Date.prototype.setUTCMonth
- Date.prototype.setUTCSeconds
- Date.prototype.toDateString
- Date.prototype.toISOString
- Date.prototype.toJSON
- Date.prototype.toLocaleDateString
- Date.prototype.toLocaleString
- Date.prototype.toLocaleTimeString
- Date.prototype.toString
- Date.prototype.toTimeString
- Date.prototype.toUTCString
- Date.prototype.valueOf
- decodeURI
- decodeURIComponent
- encodeURI
- encodeURIComponent
- Error
- ERROR.message
- ERROR.name
- Error.prototype.toString
- eval
- EvalError
- EVALERROR.message
- EVALERROR.name
- Function
- FUNCTION.length
- FUNCTION.prototype
- Function.prototype.apply
- Function.prototype.bind
- Function.prototype.call
- Function.prototype.toString
- Infinity
- isFinite
- isNaN
- JSON
- JSON.parse
- JSON.stringify
- Math
- Math.E
- Math.LN10
- Math.LN2
- Math.LOG10E
- Math.LOG2E
- Math.PI
- Math.SQRT1_2
- Math.SQRT2
- Math.abs
- Math.acos
- Math.asin
- Math.atan
- Math.atan2
- Math.ceil
- Math.cos
- Math.exp
- Math.floor
- Math.log
- Math.max
- Math.min
- Math.pow
- Math.random
- Math.round
- Math.sin
- Math.sqrt
- Math.tan
- NaN
- Number
- Number.MAX_VALUE
- Number.MIN_VALUE
- Number.NaN
- Number.NEGATIVE_INFINITY
- Number.POSITIVE_INFINITY
- Number.prototype.toExponential
- Number.prototype.toFixed
- Number.prototype.toLocaleString
- Number.prototype.toPrecision
- Number.prototype.toString
- Number.prototype.valueOf
- Object
- OBJECT.constructor
- Object.create
- Object.defineProperties
- Object.defineProperty
- Object.freeze
- Object.getOwnPropertyDescriptor
- Object.getOwnPropertyNames
- Object.getPrototypeOf
- Object.isExtensible
- Object.isFrozen
- Object.isSealed
- Object.keys
- Object.preventExtensions
- Object.seal
- Object.prototype.hasOwnProperty
- Object.prototype.isPrototypeOf
- Object.prototype.propertyIsEnumerable
- Object.prototype.toLocaleString
- Object.prototype.toString
- Object.prototype.valueOf
- parseFloat
- parseInt
- RangeError
- RANGEERROR.message
- RANGEERROR.name
- ReferenceError
- REFERENCEERROR.message
- REFERENCEERROR.name
- RegExp
- REGEXP.global
- REGEXP.ignoreCase
- REGEXP.lastIndex
- REGEXP.multiline
- REGEXP.source
- RegExp.prototype.exec
- RegExp.prototype.test
- RegExp.prototype.toString
- String
- STRING.length
- String.fromCharCode
- String.prototype.charAt
- String.prototype.charCodeAt
- String.prototype.concat
- String.prototype.indexOf
- String.prototype.lastIndexOf
- String.prototype.localeCompare
- String.prototype.match
- String.prototype.replace
- String.prototype.search
- String.prototype.slice
- String.prototype.split
- String.prototype.substring
- String.prototype.toLocaleLowerCase
- String.prototype.toLocaleUpperCase
- String.prototype.toLowerCase
- String.prototype.toString
- String.prototype.toUpperCase
- String.prototype.trim
- String.prototype.valueOf
- SyntaxError
- SYNTAXERROR.message
- SYNTAXERROR.name
- TypeError
- TypeError.message
- TypeError.name
- undefined
- URIError
- URIError.message
- URIError.name
全局对象以字典序进行排序。全局对象的属性先以此方式进行排序:静态属性(如Number.MAX_VALUE
)、实例属性(如ARRAY.length
)、静态方法(如Date.now
)、prototype方法(如Array.prototype.concat
);同一类别属性再以字典序进行排序。
本文阐述的API标准为:ECMAScript 5。
以下接口已弃用:
- escape
- unescape
arguments
arguments所在函数的实参,为类数组对象,只定义在函数体内。
arguments.callee
arguments所在的函数。
arguments.length
arguments所在函数的实参个数。
Array
数组类型。
var ARRAY = new Array();
var ARRAY = new Array(LENGTH);
var ARRAY = new Array(ELEMENT <, ...>);
ARRAY.length
数组元素个数。可写属性。
Array.prototype.concat
拼接数组。
var NEW_ARRAY = ARRAY.concat(ELEMENT <, ...>);
Array.prototype.every
判断是否所有元素都满足断言。
var OK = ARRAY.every(
function(ELEMENT, I, ARRAY) {
return true;
}
<, THIS>
);
THIS为调用断言函数时this的指向,下同。
Array.prototype.filter
使用通过断言的元素生产新数组。
var NEW_ARRAY = ARRAY.filter(
function(ELEMENT, I, ARRAY) {
return true;
}
<, THIS>
);
Array.prototype.forEach
为每个元素调用一个函数。
ARRAY.forEach(
function(ELEMENT, I, ARRAY) {
}
<, THIS>
);
Array.prototype.indexOf
正向查找元素。使用===判断相等,如不存在,则返回-1。
var INDEX = ARRAY.indexOf(VALUE <, START_INDEX>);
Array.prototype.join
将数组拼接为字符串。
var STR = ARRAY.join(<SEPARATOR>);
SEPARATOR缺省为","。
Array.prototype.lastIndexOf
反向查找元素。使用===判断相等,如不存在,则返回-1。
var INDEX = ARRAY.lastIndexOf(VALUE, <, START_INDEX>);
Array.prototype.map
计算出新数组。
var NEW_ARRAY = ARRAY.map({
function(ELEMENT, I, ARRAY) {
return VALUE;
}
<, THIS>
});
Array.prototype.pop
移除并返回最后一个元素。
var ELEMENT = ARRAY.pop();
Array.prototype.push
向数组尾部追加元素。
var LENGTH = ARRAY.PUSH(ELEMENT <, ...>);
Array.prototype.reduce
从数组正向计算出一个值。
var VALUE = ARRAY.reduce(
function(RESULT1, ELEMENT, I, ARRAY) {
return RESULT2;
}
<, INITIAL>
);
如指定INITIAL,则函数参数第一次调用时传入INITIAL和数组第一个元素;否则,函数参数第一次调用时传入第一和第二个元素。
Array.prototype.reduceRight
从数组反向计算出一个值。
var VALUE = ARRAY.reduceRight(
function(RESULT1, ELEMENT, I, ARRAY) {
return RESULT2;
}
<, INITIAL>
);
如指定INITIAL,则函数参数第一次调用时传入INITIAL和数组最后一个元素;否则,函数参数第一次调用时传入最后一个和倒数第二个元素。
Array.prototype.reverse
颠倒数组元素。
ARRAY.reverse();
Array.prototype.shift
移除并返回第一个元素。
var ELEMENT = ARRAY.shift();
Array.prototype.slice
使用数组的一部分生成新数组。
var NEW_ARRAY = ARRAY.slice(<START_INDEX <, END_INDEX>>);
新数组对应ARRAY的区间为[START_INDEX, END_INDEX)。START_INDEX和END_INDEX均可为负数,表示从尾部数起,-1为最后一个元素。
Array.prototype.some
判断是否有元素满足断言。
var OK = ARRAY.some(
function(ELEMENT, I, ARRAY) {
return true;
}
<, THIS>
);
Array.prototype.sort
对数组进行排序。
var ARRAY = ARRAY.sort(
<function(ELEMENT1, ELEMENT2) {
return INT;
}>
);
如不使用函数参数,则将数组元素转换成字符串后的值按字典序进行排序。如函数参数返回值小于0,表示ELEMENT1<ELEMENT2;等于0,表示ELEMENT1==ELEMENT2;大于0,表示ELEMENT1>ELEMENT2。
Array.prototype.splice
可用于插入、删除或替换数组元素。
var DELETE_ARRAY = ARRAY.splice(
START_INDEX,
DELETE_COUNT
<, ELEMENT <, ...>>
);
先删除START_INDEX(含)起的DELETE_COUNT个元素,再在START_INDEX处插入指定的元素,并返回被删除的元素数组。
Array.prototype.toLocaleString
转换成本地化字符串。
var STR = ARRAY.toLocaleString();
Array.prototype.toString
转换成字符串。
var STR = ARRAY.toString();
返回值与ARRAY.join()
一样。
Array.prototype.unshift
往数组头部添加元素。
var LENGTH = ARRAY.unshift(ELEMENT <, ...>);
Boolean
布尔类型。
var BOOLEAN = new Boolean(VALUE);
var BOOLEAN = Boolean(VALUE);
Boolean.prototype.toString
转换成字符串。
var STR = BOOLEAN.toString();
返回"true"或"false"。
Boolean.prototype.valueOf
返回原始布尔值。
var BOOL = BOOLEAN.valueOf();
Date
日期时间类型。
var DATE = new Date(MILLISECONDS);
var DATE = new Date();
var DATE = new Date(STR);
var DATE = new Date(YEAR, MONTH <, DATE_IN_MONTH <, HOUR <, MINUTE <, SECOND <, MILLISECOND>>>>>);
var STR = Date();
当传入MILLISECONDS时,为UTC时间从1970年1月1日零点经过指定毫秒数后对应的本地时间。其他调用,均为参数指定的本地时间。
STR最完整的格式为:2006-01-02T15:04:05.000Z。
MONTH为0至11,DATEINMONTH为1至31,HOUR为0至23,MINUTE为0至59,SECOND为0至59,MILLISECOND为0至999。
以下接口已弃用:
- Date.prototype.getYear
- Date.prototype.setYear
- Date.prototype.toGMTString
Date.now
返回UTC从1970年1月1日零点到现在UTC时间经过的毫秒数。
var MILLISECONDS = Date.now();
Date.parse
从字符串解析日期时间。
var DATE = Date.parse(STR);
STRING最完整的格式为:2006-01-02T15:04:05.000Z。
Date.UTC
返回参数指定的UTC时间从1970年1月1日零点到现在UTC时间经过的毫秒数。
var MILLISECONDS = Date.UTC(YEAR, MONTH <, DATE_IN_MONTH <, HOUR <, MINUTE <, SECOND <, MILLISECOND>>>>>)
Date.prototype.getDate
返回本地时间的日。
var DATE_IN_MONTH = DATE.getDate();
Date.prototype.getDay
返回本地时间的星期。
var DAY = DATE.getDay();
返回值为0(周日)至6(周六)。
Date.prototype.getFullYear
返回本地时间的年。
var YEAR = DATE.getFullYear();
Date.prototype.getHours
返回本地时间的时。
var HOUR = DATE.getHours();
Date.prototype.getMilliseconds
返回本地时间的毫秒。
VAR MILLISECOND = DATE.getMilliseconds();
Date.prototype.getMinutes
返回本地时间的分。
var MINUTE = DATE.getMinutes();
Date.prototype.getMonth
返回本地时间的月。
var MONTH = DATE.getMonth();
Date.prototype.getSeconds
返回本地时间的秒。
var SECOND = DATE.getSeconds();
Date.prototype.getTime
返回对应的UTC时间从UTC时间1970年1月1日零点经过的毫秒数。
var MILLISECONDS = DATE.getTime();
Date.prototype.getTimezoneOffset
返回本地时区与UTC时区的时差,以分钟表示。
var MINUTES = DATE.getTimezoneOffset();
Date.prototype.getUTCDate
返回UTC时间的日。
var DATE_IN_MONTH = DATE.getUTCDate();
Date.prototype.getUTCDay
返回UTC时间的星期。
var DAY = DATE.getUTCDay();
返回值为0(周日)至6(周六)。
Date.prototype.getUTCFullYear
返回UTC时间的年。
var YEAR = DATE.getUTCFullYear();
Date.prototype.getUTCHours
返回UTC时间的时。
var HOUR = DATE.getUTCHours();
Date.prototype.getUTCMilliseconds
返回UTC时间的毫秒。
VAR MILLISECOND = DATE.getUTCMilliseconds();
Date.prototype.getUTCMinutes
返回UTC时间的分。
var MINUTE = DATE.getUTCMinutes();
Date.prototype.getUTCMonth
返回UTC时间的月。
var MONTH = DATE.getUTCMonth();
Date.prototype.getUTCSeconds
返回UTC时间的秒。
var SECOND = DATE.getUTCSeconds();
Date.prtotype.setDate
设置本地时间的日。
var MILLISECONDS = DATE.setDate(DATE_IN_MONTH);
返回设置后的UTC时间从UTC时间1970年1月1日零点经过的毫秒数。下同。
Date.prototype.setFullYear
设置本地时间的年、月、日。
var MILLISECONDS = DATE.setFullYear(YEAR <, MONTH <, DATE_IN_MONTH>>);
Date.prototype.setHours
设置本地时间的时、分、秒、毫秒。
var MILLISECONDS = DATE.setHours(HOUR <, MINUTE <, SECOND <, MILLISECOND>>>);
Date.prototype.setMilliseconds
设置本地时间的毫秒。
var MILLISECONDS = DATE.setMilliseconds(MILLISECOND);
Date.prototype.setMinutes
设置本地时间的分、秒、毫秒。
var MILLISECONDS = DATE.setMinutes(MINUTE <, SECOND <, MILLISECOND>>);
Date.prototype.setMonth
设置本地时间的月、日。
var MILLISECONDS = DATE.setMonth(MONTH <, DATE_IN_MONTH>);
Date.prototype.setSeconds
设置本地时间的秒、毫秒。
var MILLISECONDS = DATE.setSeconds(SECOND <, MILLISECOND>);
Date.prototype.setTime
设置时间为UTC时间从1970年1月1日零点经过指定的毫秒数。
var MILLISECONDS = DATE.setTime(MILLISECONDS);
Date.prtotype.setUTCDate
设置UTC时间的日。
var MILLISECONDS = DATE.setUTCDate(DATE_IN_MONTH);
返回设置后的UTC时间从UTC时间1970年1月1日零点经过的毫秒数。下同。
Date.prototype.setUTCFullYear
设置UTC时间的年、月、日。
var MILLISECONDS = DATE.setUTCFullYear(YEAR <, MONTH <, DATE_IN_MONTH>>);
Date.prototype.setUTCHours
设置UTC时间的时、分、秒、毫秒。
var MILLISECONDS = DATE.setUTCHours(HOUR <, MINUTE <, SECOND <, MILLISECOND>>>);
Date.prototype.setUTCMilliseconds
设置UTC时间的毫秒。
var MILLISECONDS = DATE.setUTCMilliseconds(MILLISECOND);
Date.prototype.setUTCMinutes
设置UTC时间的分、秒、毫秒。
var MILLISECONDS = DATE.setUTCMinutes(MINUTE <, SECOND <, MILLISECOND>>);
Date.prototype.setUTCMonth
设置UTC时间的月、日。
var MILLISECONDS = DATE.setUTCMonth(MONTH <, DATE_IN_MONTH>);
Date.prototype.setUTCSeconds
设置UTC时间的秒、毫秒。
var MILLISECONDS = DATE.setUTCSeconds(SECOND <, MILLISECOND>);
Date.prototype.toDateString
返回本地时间的日期字符串,与实现有关,如:Tue Jul 07 2020。
var STR = DATE.toDateString();
Date.prototype.toISOString
返回UTC时间的日期时间字符串,使用ISO-8601标准,如:2020-07-07T15:56:14.306Z。
var STR = DATE.toISOString();
Date.prototype.toJSON
返回UTC时间的日期时间字符串,使用ISO-8601标准,如:2020-07-07T15:56:14.306Z。
var STR = DATE.toJSON(<KEY>);
参数KEY会被忽略。
Date.prototype.toLocaleDateString
返回本地时间本地习惯的日期字符串,与实现有关,如:2020/7/7。
var STR = DATE.toLocaleDateString();
Date.prototype.toLocaleString
返回本地时间本地习惯的日期时间字符串,与实现有关,如:2020/7/7 下午11:56:14。
var STR = DATE.toLocaleString();
Date.prototype.toLocaleTimeString
返回本地时间本地习惯的时间字符串,与实现有关,如:下午11:56:14。
var STR = DATE.toLocaleTimeString();
Date.prototype.toString
返回本地时间的日期时间字符串,与实现有关,如:Tue Jul 07 2020 23:56:14 GMT+0800 (中国标准时间)。
var STR = DATE.toString();
Date.prototype.toTimeString
返回本地时间的时间字符串,与实现有关,如:23:56:14 GMT+0800 (中国标准时间)。
var STR = DATE.toTimeString();
Date.prototype.toUTCString
返回UTC时间的日期时间字符串,与实现有关,如:Tue, 07 Jul 2020 15:56:14 GMT。
var STR = DATE.toUTCString();
Date.prototype.valueOf
返回对应的UTC时间从UTC时间1970年1月1日零点经过的毫秒数。
var MILLISECONDS = DATE.valueOf();
decodeURI
解码URI,将%开头的16进制转义序列解码为其代表的字符。encodeURI的逆操作。
var URI_DECODED = decodeURI(URI);
decodeURIComponent
解码URI的组件,将%开头的16进制转义序列解码为其代表的字符。encodeURIComponent的逆操作。
var COMPONENT_DECODED = decodeURIComponent(COMPONENT);
encodeURI
编码URI。将字母、数字、-_.!~*'()和;/?