JavaScript 内置对象与函数参考指南

作者:半夏

时间:2026-10-28

浏览:185

本文系统梳理 JavaScript 核心内置对象与函数用法。涵盖 Number、String、Array、Date 及 Math 五大对象的关键属性与方法,详细解析数组定义、字符串处理、日期时间操作及数学计算规则。同时介绍全局对象方法与自定义函数的定义、参数传递及返回值机制,帮助开发者掌握基础编程要素。

文章目录

JavaScript 参考教程


对象的基本概念

JavaScript 采用对象化编程(即面向对象编程)模式。其核心思想是将 JavaScript 的作用域划分为不同层级的对象,从宏观的网页文档、窗口、屏幕,到微观的变量,均被视为对象。本章将围绕“面向对象”视角,解析 JavaScript 的运行机制。


对象的基本知识


对象是从 JavaScript 作用域中划分出的独立单元,可表现为文本、图像、表单(Form)等。每个对象包含属性、方法和事件。属性用于描述对象的特定性质,如字符串长度、图像尺寸或文本框内容;方法用于对对象执行操作,如表单提交或窗口滚动;事件则用于响应发生在对象上的交互,如提交表单触发的“提交事件”或点击链接触发的“点击事件”。并非所有对象都具备这三类特性,部分对象可能仅有属性或无事件。引用对象的任一性质时,采用“<对象名>.<性质名>”的格式。



基本对象


本节从对象角度重新审视已学的数据类型。



Number 数字对象

Number “数字”对象。该对象在实际开发中使用较少,作者未曾见过直接实例化。但属于 Number 范畴的变量却十分常见。



属性



MAX_VALUE 用法:Number.MAX_VALUE;返回“最大值”。


MIN_VALUE 用法:Number.MIN_VALUE;返回“最小值”。


NaN 用法:Number.NaN 或 NaN;返回“NaN”。“NaN”(非数值)在早期内容中已有介绍。


NEGATIVE_INFINITY 用法:Number.NEGATIVE_INFINITY;返回负无穷大,即比“最小值”更小的值。


POSITIVE_INFINITY 用法:Number.POSITIVE_INFINITY;返回正无穷大,即比“最大值”更大的值。



方法



toString() 用法:<数值变量>.toString();返回字符串形式的数值。例如:若 a == 123;则 a.toString() == '123'。



String 字符串对象

String 字符串对象。声明字符串对象最简单、快捷、有效且常用的方法是直接赋值。



属性



length 用法:<字符串对象>.length;返回该字符串的长度。



方法



charAt() 用法:<字符串对象>.charAt(<位置>);返回该字符串位于第<位置>位的单个字符。注意:字符串中第一个字符位于第 0 位,第二个位于第 1 位,最后一个字符位于第 length - 1 位。


charCodeAt() 用法:<字符串对象>.charCodeAt(<位置>);返回该字符串位于第<位置>位的单个字符的 ASCII 码。


fromCharCode() 用法:String.fromCharCode(a, b, c...);返回一个字符串,该字符串每个字符的 ASCII 码由 a, b, c... 等参数确定。


indexOf() 用法:<字符串对象>.indexOf(<另一个字符串对象>[, <起始位置>]);该方法从<字符串对象>中查找<另一个字符串对象>(若给出<起始位置>则忽略之前的位置),找到则返回其位置,未找到则返回“-1”。所有“位置”索引均从零开始。


lastIndexOf() 用法:<字符串对象>.lastIndexOf(<另一个字符串对象>[, <起始位置>]);功能与 indexOf() 相似,但查找方向是从后向前。


split() 用法:<字符串对象>.split(<分隔符字符>);返回一个数组,该数组由<字符串对象>按<分隔符字符>分离而成,分隔符本身不包含在返回的数组中。例如:'1&2&345&678'.split('&') 返回数组:1,2,345,678。关于数组的详细信息将在后续章节讨论。


substring() 用法:<字符串对象>.substring(<始>[, <终>]);返回原字符串的子字符串,范围从<始>位置到<终>位置的前一位置。<终> - <始> 等于返回字符串的长度(length)。若未指定<终>或指定值超过字符串长度,则子字符串从<始>位置一直截取到原字符串末尾。若指定位置无法返回有效字符串,则返回空字符串。


substr() 用法:<字符串对象>.substr(<始>[, <长>]);返回原字符串的子字符串,从<始>位置开始,长度为<长>。若未指定<长>或指定值超过字符串长度,则子字符串从<始>位置一直截取到原字符串末尾。若指定位置无法返回有效字符串,则返回空字符串。


toLowerCase() 用法:<字符串对象>.toLowerCase();返回将原字符串所有大写字母转换为小写后的字符串。


toUpperCase() 用法:<字符串对象>.toUpperCase();返回将原字符串所有小写字母转换为大写后的字符串。



Array 数组对象

Array 数组对象。数组对象是对象的集合,其中的元素可以是不同类型。数组的每个成员都有一个“下标”,表示其在数组中的位置(索引从零开始)。



数组的定义方法:



var <数组名> = new Array();



上述代码定义了一个空数组。后续添加数组元素可使用:



<数组名>[<下标>] = ...;



注意这里的方括号并非“可省略”之意,数组下标的表示方法必须使用方括号括起来。



若想在定义数组时直接初始化数据,请使用:



var <数组名> = new Array(<元素1>, <元素2>, <元素3>...);



例如,var myArray = new Array(1, 4.5, 'Hi'); 定义了一个数组 myArray,其中的元素为:myArray[0] == 1; myArray[1] == 4.5; myArray[2] == 'Hi'。



但是,如果元素列表中仅有一个元素,且该元素为正整数,这将定义一个包含<正整数>个空元素的数组。



注意:JavaScript 仅支持一维数组!切勿使用“Array(3,4)”这种错误方法定义 4 x 5 的二维数组,或使用“myArray[2,3]”这种错误方法获取“二维数组”中的元素。任何“myArray[...,3]”形式的调用实际上只返回“myArray[3]”。若需使用多维数组,请使用以下虚拟法:



var myArray = new Array(new Array(), new Array(), new Array(), ...);



这实际上是一个一维数组,其中每个元素又是一个数组。调用该“二维数组”的元素时:myArray[2][3] = ...;



属性



length 用法:<数组对象>.length;返回:数组的长度,即数组中元素的数量。它等于数组中最后一个元素的下标加一。因此,若想添加一个元素,只需执行:myArray[myArray.length] = ...。



方法



join() 用法:<数组对象>.join(<分隔符>);返回一个字符串,该字符串将数组中的各个元素连接起来,元素之间使用<分隔符>分隔。此方法不影响数组原本的内容。


reverse() 用法:<数组对象>.reverse();使数组中的元素顺序反转。若对数组[1, 2, 3]使用此方法,它将使数组变为:[3, 2, 1]。


slice() 用法:<数组对象>.slice(<始>[, <终>]);返回一个数组,该数组是原数组的子集,始于<始>,终于<终>。若未给出<终>,则子集一直取到原数组的结尾。


sort() 用法:<数组对象>.sort([<方法函数>]);使数组中的元素按一定顺序排列。若未指定<方法函数>,则按字母顺序排列。在此情况下,80 会排在 9 之前。若指定<方法函数>,则按<方法函数>指定的排序规则排序。<方法函数>较为复杂,此处仅介绍一些有用的<方法函数>。



按升序排列数字:



function sortMethod(a, b) {


return a - b;


}

myArray.sort(sortMethod);



按降序排列数字:将上述“a - b”改为“b - a”。



有关函数的详细信息,请参阅下文。



Math 数学对象

Math “数学”对象,提供数据的数学计算功能。下文提到的属性和方法,不再详细说明“用法”,使用时请注意采用“Math.<名>”的格式。



属性



E 返回常数 e (2.718281828...)。


LN2 返回 2 的自然对数 (ln 2)。


LN10 返回 10 的自然对数 (ln 10)。


LOG2E 返回以 2 为底的 e 的对数 (log2e)。


LOG10E 返回以 10 为底的 e 的对数 (log10e)。


PI 返回π(3.1415926535...)。


SQRT1_2 返回 1/2 的平方根。


SQRT2 返回 2 的平方根。



方法



abs(x) 返回 x 的绝对值。


acos(x) 返回 x 的反余弦值(余弦值等于 x 的角度),以弧度表示。


asin(x) 返回 x 的反正弦值。


atan(x) 返回 x 的反正切值。


atan2(x, y) 返回复平面内点(x, y)对应的复数的幅角,以弧度表示,其值在 -π 到 π 之间。


ceil(x) 返回大于等于 x 的最小整数。


cos(x) 返回 x 的余弦。


exp(x) 返回 e 的 x 次幂 (ex)。


floor(x) 返回小于等于 x 的最大整数。


log(x) 返回 x 的自然对数 (ln x)。


max(a, b) 返回 a, b 中较大的数。


min(a, b) 返回 a, b 中较小的数。


pow(n, m) 返回 n 的 m 次幂 (nm)。


random() 返回大于 0 小于 1 的一个随机数。


round(x) 返回 x 四舍五入后的值。


sin(x) 返回 x 的正弦。


sqrt(x) 返回 x 的平方根。


tan(x) 返回 x 的正切。



Date 日期对象

Date 日期对象。该对象可储存任意日期,范围从 0001 年到 9999 年,并精确到毫秒(1/1000 秒)。在内部,日期对象是一个整数,表示从 1970 年 1 月 1 日零时正开始计算到日期对象所指日期的毫秒数。若所指日期早于 1970 年,则该值为负数。所有日期时间若不指定时区,均采用“UTC”(协调世界时)时区,其数值与“GMT”(格林威治时间)相同。



定义一个日期对象:



var d = new Date;



此方法使 d 成为日期对象,并赋予初始值:当前时间。若需自定义初始值,可使用:



var d = new Date(99, 10, 1); //99 年 10 月 1 日


var d = new Date('Oct 1, 1999'); //99 年 10 月 1 日



等其他方法。最佳实践是使用下文介绍的“方法”来严格定义时间。



方法



以下包含大量“g/set[UTC]XXX”格式的方法,表示同时存在“getXXX”和“setXXX”方法。“get”用于获取数值,“set”用于设定数值。若带有“UTC”字样,表示获取/设定的数值基于 UTC 时间;若无此字样,则表示基于本地时间或浏览器默认时间。



如无特别说明,方法的使用格式为:“<对象>.<方法>”,下文同此。



g/set[UTC]FullYear() 返回/设置年份,使用四位数表示。若使用“x.set[UTC]FullYear(99)”,则年份被设定为 0099 年。


g/set[UTC]Year() 返回/设置年份,使用两位数表示。设定时间浏览器自动加上“19”前缀,故使用“x.set[UTC]Year(00)”将年份设定为 1900 年。


g/set[UTC]Month() 返回/设置月份。


g/set[UTC]Date() 返回/设置日期。


g/set[UTC]Day() 返回/设置星期,0 表示星期天。


g/set[UTC]Hours() 返回/设置小时数,采用 24 小时制。


g/set[UTC]Minutes() 返回/设置分钟数。


g/set[UTC]Seconds() 返回/设置秒钟数。


g/set[UTC]Milliseconds() 返回/设置毫秒数。


g/setTime() 返回/设置时间,该时间即为日期对象的内部处理方式:从 1970 年 1 月 1 日零时正开始计算到日期对象所指日期的毫秒数。若需使某日期对象所指时间推迟 1 小时,可使用:“x.setTime(x.getTime() + 60 * 60 * 1000);”(一小时 60 分,一分 60 秒,一秒 1000 毫秒)。


getTimezoneOffset() 返回日期对象采用的时区与格林威治时间所差的分钟数。在格林威治东方的城市,该值为负,例如:中国时区(GMT+0800)返回“-480”。


toString() 返回一个字符串,描述日期对象所指的日期。该字符串格式类似于:“Fri Jul 21 15:43:46 UTC+0800 2000”。


toLocaleString() 返回一个字符串,描述日期对象所指的日期,采用本地时间格式。如:“2000-07-21 15:43:46”。


toGMTString() 返回一个字符串,描述日期对象所指的日期,采用 GMT 格式。


toUTCString() 返回一个字符串,描述日期对象所指的日期,采用 UTC 格式。


parse() 用法:Date.parse(<日期对象>);返回该日期对象的内部表达方式。



全局对象与函数

全局对象


全局对象从不显式出现,可视为虚拟存在,旨在将全局函数“对象化”。在 Microsoft JScript 语言参考中,它被称为“Global 对象”,但引用其方法和属性时从不使用“Global.xxx”(且这样做会出错),而是直接使用“xxx”。



属性



NaN 一早就已介绍。



方法



eval() 将括号内的字符串作为标准语句或表达式执行。


isFinite() 若括号内的数字是“有限”的(介于 Number.MIN_VALUE 和 Number.MAX_VALUE 之间)则返回 true;否则返回 false。


isNaN() 若括号内的值是“NaN”则返回 true,否则返回 false。


parseInt() 返回将括号内内容转换为整数后的值。若括号内是字符串,则字符串开头的数字部分被转换为整数;若以字母开头,则返回“NaN”。


parseFloat() 返回将括号内字符串转换为浮点数后的值,字符串开头的数字部分被转换为浮点数;若以字母开头,则返回“NaN”。


toString() 用法:<对象>.toString();将对象转换为字符串。若在括号中指定数值,则转换过程中所有数值转换为特定进制。


escape() 返回括号中字符串经编码后的新字符串。该编码适用于 URL,即将空格转换为“%20”格式。“+”不被编码,若需对“+”也进行编码,请使用:escape('...', 1)。


unescape() 是 escape() 的反过程。将括号中字符串解码为普通字符串。



函数


函数的定义



所谓“函数”,是有返回值的对象或对象的方法。



函数的种类



常见函数包括:构造函数(如 Array(),用于构造数组)、全局函数(即全局对象中的方法)、自定义函数等。



自定义函数



定义函数使用以下语句:



function 函数名([参数集]) {


    ...

[return[ <值>];]


    ...
} 

其中,function 之后和函数结尾的大括号不可省略,即使函数仅包含一行代码。



函数名与变量名遵循相同的命名规则,即仅包含字母、数字和下划线,以字母开头,且不与保留字重复。



参数集可有可无,但括号必须存在。



参数是函数外部向函数内部传递信息的桥梁。例如,若希望函数返回 3 的立方,需让函数知晓“3”这一数值,此时需有一个变量来接收该数值,此类变量称为参数。



参数集是一个或多个用逗号分隔的参数集合,如:a, b, c。



函数内部包含一至多行语句,这些语句不会立即执行,仅在其它程序调用时才执行。这些语句中可能包含“return”语句。执行函数时,遇到 return 语句,函数立即停止执行并返回至调用它的程序中。若“return”后带有<值>,则在退出函数的同时返回该值。



在函数内部,参数可直接作为变量使用,并可使用 var 语句新建变量,但这些变量均无法被函数外部的过程调用。若需使函数内部信息能被外部调用,要么使用“return”返回值,要么使用全局变量。



全局变量 在 Script 的“根部”(非函数内部)通过“var”语句定义的变量即为全局变量,可在整个过程的任意位置被调用和修改。



例



function addAll(a, b, c) {


return a + b + c;


}

var total = addAll(3, 4, 5);



此示例建立了一个名为“addAll”的函数,包含 3 个参数:a, b, c,功能是返回三个数相加的结果。在函数外部,通过“var total = addAll(3, 4, 5);”接收函数的返回值。



更多情况下,函数没有返回值。此类函数在强调严格性的语言中被称为“过程”,例如 Basic 类语言的“Sub”、Pascal 语言的“procedure”。



属性



arguments 一个数组,反映外部程序调用函数时指定的参数。用法:直接在函数内部调用“arguments”。


实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章