JavaScript 面向对象基础与 Array、Date 类详解

作者:代码拾荒

时间:2026-10-25

浏览:412

本文梳理JavaScript作为面向对象语言的封装、聚集、继承与多态四大能力,详解本地对象中的Array与Date类。重点解析Array的toString、join、splice等操作方法,以及利用push/pop和shift实现栈与队列的逻辑,并列举Date类获取与设置时间部分的核心API。

文章目录

JavaScript 面向对象四大核心能力

面向对象语言需向开发者提供四种核心能力:


(1) 封装——将数据或方法等信息整合并存储于对象内部的能力。


(2) 聚集——将一个对象嵌入至另一个对象内部的能力。


(3) 继承——从其他类(或多个类)获取属性与方法的能力。


(4) 多态——编写能以多种形态运行的函数或方法的能力。



JavaScript 对象类型分类

对象的类型



1.本地对象


①Array类


②Date类


2.内置对象


3.宿主对象



Array 类常用操作方法详解

Array类


toString()与valueOf()方法返回特殊字符串,该字符串由对每项调用toString()并用逗号连接构成。例如,含"red"、"green"和"blue"的数组调用此方法,返回"red,green,blue"。


join()方法仅用于连接字符串值,其唯一参数指定数组项间的分隔符字符串。


split()方法将字符串转为数组,参数为视作项间分隔符的字符串。若分隔符为空字符串,返回数组中每项为字符串的一个字符。


concat()处理数组的方式与处理字符串类似,参数附加至数组末尾,返回包含原项与新项的新Array对象。


slice()接受一个或两个参数,分别为提取项的起始和结束位置。单参数时返回该位置至结尾的所有项;双参数时返回起始位置至结束位置(不含结束位)的项。


unshift()方法将项置于数组首位,其余项依次后移一位。


reverse()方法反转数组项的顺序。


sort()方法按数组项值升序排列。(注:仅对字符串编码排序,数字数组需另寻方案)


splice()方法最为复杂,用于在数组中部插入数据项。


1.删除——声明两个参数即可删除任意多项,分别为起始位置和删除项数。例如arr.splice(0,2)删除前两项。


2.替换而不删除——声明三个参数:起始位置、0(删除项数)及插入项。还可指定更多插入项。例如arr.splice(2,0,"red", "green")在位置2插入"red"和"green"。


3.替换并删除——声明三个参数:起始位置、删除项数及插入项。可指定更多插入项,插入数不必等于删除数。例如arr.splice(2,1, "red","green")删除位置2的项,并在该处插入"red"和"green"。


栈与队列的数据结构及 Array 实现

栈和队列的概念


区别一


栈:后进先出(LIFO)结构,先添加项后删除,插入和删除操作均发生在栈顶。



队列:先进先出(FIFO)结构,先添加项最后删除,插入操作在队尾,删除操作在队头。


区别二


栈:顶部添加项称“推入栈”,删除顶部项称“弹出栈”。



队列:队尾添加项称“put”或“入队”,队头删除项称“get”或“出队”。


在Array类中的运用


栈:push()在Array末尾添加一个或多个项,pop()删除最后一项(length-1)并返回。



队列:push()将项加入队列(数组末尾),shift()删除首项并返回。


Date 类时间与日期处理方法

Date类


Date类的方法(见下表)均用于设置或获取日期值的特定部分。


方    法

说    明

toLocaleDateString()

以地点特定的格式显示Date的时间部分

getTime()

返回日期的毫秒表示

setTime(milliseconds)

设置日期的毫秒表示

getFullYear()

返回用四位数字表示的日期的年份(如2004而不只是04)

getUTCFullYear()

返回用四位数字表示的UTC日期的年份

setFullYear(year)

设置日期的年份,参数必须是四位数字的年份值

setUTCFullYear(year)

设置UTC日期的年份,参数必须是四位数字的年份值

getMonth()

返回日期的月份值,由数字0(1月)到11(12月)表示

getUTCMonth()

返回UTC日期的月份值,由数字0(1月)到11(12月)表示

setMonth(month)

设置日期的月份为大于等于0的数字。对于大于11的数字,开始累计年数

setUTCMonth(month)

设置UTC日期的月份为大于等于0的数字。对于大于11的数字,开始累计年数

getDate()

返回该日期该月中的某天

getUTCDate()

返回该UTC日期该月中的某天

setDate(date)

设置该日期该月中的某天

setUTCDate(date)

设置该UTC日期该月中的某天

getDay()

返回该日期为星期几

getUTCDay()

返回该UTC日期为星期几

setDay(day)

设置该日期为星期几

setUTCDay(day)

设置该UTC日期为星期几

getHours()

返回日期中的小时值

getUTCHours()

返回UTC日期中的小时值

setHours(hours)

设置日期中的小时值

setUTCHours(hours)

设置UTC日期中的小时值

getMinutes()

返回日期中的分钟值

getUTCMinutes()

返回UTC日期中的分钟值

setMinutes(minutes)

设置日期中的分钟值

setUTCMinutes(minutes)

设置UTC日期中的分钟值

getSeconds()

返回日期中的秒值

getUTCSeconds ()

返回UTC日期中的秒值

setSeconds (seconds)

设置日期中的秒值

setUTCSeconds (seconds)

设置UTC日期中的秒值

getMilliseconds()

返回日期中的毫秒值。注意,这不是自1970年1月1日以后的毫秒值,而是当前时间中的毫秒值,例如4 :55 :34.20,其中20即为时间的毫秒值

getUTCMilliseconds ()

返回UTC日期中的毫秒值

setMilliseconds (milliseconds)

设置日期中的毫秒值

setUTCMilliseconds (milliseconds)

设置UTC日期中的毫秒值

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章