javascript内置对象

发布于:2025-06-30 ⋅ 阅读:(13) ⋅ 点赞:(0)

Date

Date对象在]S中使用Date对象来表示一个时间对象。

方法
方法 描述
Date() 返回当日的日期和时间。
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。
getYear() 请使用 getFullYear() 方法代替。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setFullYear() 设置 Date 对象中的年份(四位数字)。
setYear() 请使用 setFullYear() 方法代替。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
setTime() 以毫秒设置 Date 对象。
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource() 返回该对象的源代码。
toString() 把 Date 对象转换为字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toGMTString() 请使用 toUTCString() 方法代替。
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf() 返回 Date 对象的原始值

Date.now() 返回当前的时间的时间戳。

Unix 时间戳:从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

时间戳: 1970 年 1 月 1 日至今的毫秒数。

计算机底层在保存时间时使用都是时间戳。

方法演示
var d1 = new Date("03/11/2022 08:11:23"); //这种时间格式是中国时区的标准格式
console.log(d1);
//创建一个Date对象
var d = new Date();
console.log(d); //Mon Feb 13 2023 14:29:13 GMT+0800 (中国标准时间)
console.log(d.getDate()); // 13
console.log(d.getDay()); // 1
console.log(d.getMonth()); // 2
console.log(d.getFullYear()) // 2023
console.log(d.getHours()) // 14
console.log(d.getMinutes()) // 38
console.log(d.getSeconds()) // 50
console.log(d.getTime()) // 1676270415527
console.log(d1.getTime()) // 1646957483000
console.log(Date.now()) // 1676270608336 获取当前时间戳

Math

Math和其他的对象不同,它不是一个构造函数, 它属于一个工具类,不用创建对象,它里边封装了数学运算相关的属性和方法。

属性
属性 描述
E 返回算术常量 e,即自然对数的底数(约等于2.718)。
LN2 返回 2 的自然对数(约等于0.693)。
LN10 返回 10 的自然对数(约等于2.302)。
LOG2E 返回以 2 为底的 e 的对数(约等于 1.414)。
LOG10E 返回以 10 为底的 e 的对数(约等于0.434)。
PI 返回圆周率(约等于3.14159)。
SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)。
SQRT2 返回 2 的平方根(约等于 1.414)。
方法
方法 描述
abs(x) 返回数的绝对值。
acos(x) 返回数的反余弦值。
asin(x) 返回数的反正弦值。
atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
ceil(x) 对数进行上舍入。
cos(x) 返回数的余弦。
exp(x) 返回 e 的指数。
floor(x) 对数进行下舍入。
log(x) 返回数的自然对数(底为e)。
max(x,y) 返回 x 和 y 中的最高值(多个参数)。
min(x,y) 返回 x 和 y 中的最低值(多个参数)。
pow(x,y) 返回 x 的 y 次幂。
random() 返回 0 ~ 1 之间的随机数。
round(x) 把数四舍五入为最接近的整数。
sin(x) 返回数的正弦。
sqrt(x) 返回数的平方根。
tan(x) 返回角的正切。
toSource() 返回该对象的源代码。
valueOf() 返回 Math 对象的原始值。
//常量PI
console.log(Math.PI);
/**
 * ceil 可以对一个数进行向上取整。只要小数位值大于0,值就自动进1
 */
console.log(Math.ceil(2.1)); //3
console.log(Math.ceil(4.2)); //5
console.log(Math.ceil(3.0)); //3
/**
 * floor 可以对一个数进行向下取整,舍去小数位数值。
 */
console.log(Math.floor(2.1)); //2
console.log(Math.floor(4.2)); //4
console.log(Math.floor(3.0)); //3

/**
 * Math.random()可以用来生成一个0-1之间的随机数, 不会出现0和1。
 * 生成一个X-y之间的随机数公式:Math.round(Math.random()*(y-x)+
 */
for(var i=0; i<100; i++){
    console.log(Math.round(Math.random()*10));
    console.log(Math.round(Math.random()*20));
    console.log(Math.round(Math.random()*9)+1);
    console.log(Math.round( Math.random()*8)+2);
    console.log(Math.round (Math.random()*5+1));
}
/**
 * max min
 */
console.log(Math.max(1,2,30,4,50,44,32,53));
console.log(Math.min(6,2,30,4,50,44,32,53));

包装类

基本数据类型:String Number Boolean Null Undefined引用数据类型

**Object:**在JS中为我们提供了三个包装类(String、Number、Boolean),通过这三个包装类可以将基本数据类型的数据转换为对象

但是注意:我们在实际应用中不会使用基本数据类型的对象,如果使用基本数据类型的对象,在做一些比较时可能会带来一些不可预期的结果。

方法和属性只能添加给对象,不能添加给基本数据类型。当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后在调用对象的属性和方法。调用完以后,在将其转换为基本数据类型。

String

在底层字符串是以字符数组的形式保存的

//创建一个字符串
var str = "Hello"; //这个是底层保存的形式 ["H","e","l","l","o"]
属性
属性 描述
constructor 对创建该对象的函数的引用
length 字符串的长度
prototype 允许您向对象添加属性和方法
方法

字符串的方法大部分不会对源字符串产生影响,会把结果返回到一个新字符串变量里。

方法 描述
anchor() 创建 HTML 锚。
big() 用大号字体显示字符串。
blink() 显示闪动字符串。
bold() 使用粗体显示字符串。
charAt() 返回在指定位置的字符,参数为字符串的字符数组的索引。和str[index]一样
charCodeAt() 返回在指定的位置的字符的 Unicode 编码。
concat() 连接字符串。
fixed() 以打字机文本显示字符串。
fontcolor() 使用指定的颜色来显示字符串。
fontsize() 使用指定的尺寸来显示字符串。
fromCharCode() 从字符编码创建一个字符串,通过String构造函数调用。例如:String.fromCharCode()
indexOf() 检索字符串。检索空字符串返回0
italics() 使用斜体显示字符串。
lastIndexOf() 从后向前搜索字符串。
link() 将字符串显示为链接。
localeCompare() 用本地特定的顺序来比较两个字符串。
match() 找到一个或多个正则表达式的匹配。
replace() 替换与正则表达式匹配的子串。
search() 检索与正则表达式相匹配的值。
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分。
small() 使用小字号来显示字符串。
split() 把字符串分割为字符串数组。
strike() 使用删除线来显示字符串。
sub() 把字符串显示为下标。
substr() 从起始索引号提取字符串中指定数目的字符。
substring() 提取字符串中两个指定的索引号之间的字符。
sup() 把字符串显示为上标。
toLocaleLowerCase() 把字符串转换为小写。
toLocaleUpperCase() 把字符串转换为大写。
toLowerCase() 把字符串转换为小写。
toUpperCase() 把字符串转换为大写。
toSource() 代表对象的源代码。
toString() 返回字符串。
valueOf() 返回某个字符串对象的原始值。

代码演示

var str = "hello";
console.log(str) //5 获取字符串的字符个数 
console.log(str[3]) //l //可以以数组的形式获取字符串某个字符
//contact
var str1 = str.concat("你好","再见")
console.log(str); //hello 
console.log(str1); //hello你好再见
/**
 * indexOf - 查找字符串,返回字符串数组的索引, 没有找到返回-1。
 * 可以指定第二个参数,指定开始查找的位置(这个位置是字符数组的索引)。
*/
var p = str.indexOf('h');
console.log(p)
var str2 = "s2fsdalfjsdll";
var p1 = str2.indexOf('s', 0);
console.log(p1);
var p2 = str2.indexOf('s', 4);
console.log(p2);
var p3 = str2.indexOf('');
console.log(p2); //0
/**
 * lastIndexOf();
 * 不同的是indexOf是从前往后找,而lastIndexOf是从后往前找
 * 也可以指定开始查找的位置
 */
var p = str.lastIndexOf('h');
console.log(p)
var str2 = "s2fsdalfjsdll";
var p1 = str2.lastIndexOf('s', 0);
console.log(p1);
var p2 = str2.lastIndexOf('s', 4);
console.log(p2);
/**
 * slice() 截取字符串片段
 * 不会影响原字符串,而是将截取到内容返回
 * 参数和数组一样
 * 第一个参数只有小于第二个参数,才能截取部分片段。
 */
var str3 = "abcdsfsafasfsdwhgdf";
console.log(str3.slice(1, 3)); //bc
console.log(str3.slice(1, -5)); //dsfsafasfsd
console.log(str3.slice(-9, -6)) //sfs
/**
 * substring()
 * - 可以用来截取一个字符串,可以slice()类似
 * - 参数:
 *   第一个,开始截取位置的索引(包括开始位置)
 *   第二个,结束位置的索引(不包括结束位置)
 *   不同的是这个方法不能接受负值作为参数,如果传递了一个负值,则默认使用0
 *   而且如果第二个参数小于第一个, 他会将第一个和第二个位置参数则自动交换
*/
console.log(str3.substring(1, 3)); //bc
console.log(str3.substring(-5, 3));//abc
console.log(str3.substring(1, -3));//a 这里实际参数为substring(1, 0),由于第二个参数小于第一个,所以自动交换substring(0,1)。
/*
 * substr()
 * -用来截取字符串工
 * -参数
 * 1.截取开始位置的索引
 * 2.截取的长度
 */
str = "abcdefg";
result = str.substr(3,2);
console.log(str);
/* split()
* - 可以将一个字符串拆分为一个数组
* - 参数,
* - 需要一个字符串作为参数,将会根据该字符串去拆分数组
* - 如果传递一个空串作为参数,则会将每个字符都拆分为数组中的一个元素
*/
str = "abc,cd,efg,hij";
result = str.split(",");
console.log(Array.isArray(result));

/* toUpperCase()
* -将一个字符串转换为大写并返回
*/
console.log("abcdseg".toUpperCase())
/*
* toLowercase()
* 将一个字符串转换为小写并返回
*/
console.log("ABCDEFG".toLowerCase())

正则表达式

正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,获取将字符串中符合规则的内容提取出来。

创建正则表达式的对象

语法:

/*
 * 在构造函数中可以传递一个匹配模式作为第二个参数,可以是
 * i 忽略大小写
 * g 全局匹配模式
 */
var 变量 = new RegExp("正则表达式","匹配模式"); //使用typeof检查正则对象,会返回 object
/** 
 * 使用字面量来创建正则表达式 
 * 语法: var变量=/正则表达式/匹配模式
 */
var n = /正则表达式/匹配模式

使用字面量的方式创建更加简单

使用构造函数创建更加灵活, 构造函数中正则表达式可以传递变量。

正则语法
修饰符
修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。
方括号

方括号用于查找某个范围内的字符:

表达式 描述
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。
元字符

元字符(Metacharacter)是拥有特殊含义的字符:

在正则表达式中使用\作为转义字符

元字符 描述
. 查找单个字符,除了换行和行结束符。
\w 查找单词字符。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NUL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
量词

通过量词可以设置一个内容出现的次数, 量词只对它前边的一个内容起作用.可以通过()小括号提高内容优先级。例如:

var str = "abcbcbc";
str.test(/(bc){3}/); //查找bc出现3次
量词 描述
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。

一般正则表达式都会以^开始并且以$结束,表示完全符号这个正则的需求。

正则表达式对象的方法。
test()
  • 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则, 如果符合则返回true,否则返回false
字符串和正则相关的方法
方法 描述
search 检索与正则表达式相匹配的值。
match 找到一个或多个正则表达式的匹配。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。
var str = "1a2b3c4d5e6f7";
/* split()
    - 可以将一个字符串拆分为一个数组
*   - 方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串
    - 根据任意字母来将字符串拆分
    -这个方法即使不指定全局匹配,也会全都插分

*/
var result = str.split(/[A-z]/);
console.log(result); //['1', '2', '3', '4', '5', '6', '7']
/**
 * search()
    -可以搜索字符串中是否含有指定内容
    -如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
    -它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
    -只会查找第一个,即使设置全局匹配也没用
*/
str = "hello abc hello aec afc";
result = str.search(/abc|aec|afc/);
console.log(result); //6
result = str.search(/a[bef]c/);
console.log(result); //6
/**
 * match()
 * - 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
 * - 默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索
 * - 我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容(/g)
 * - 可以为一个正则表达式设置多个匹配模式,且顺序无所谓
*/
str = "1a2b3c4d5e6g7f9ABC";
result = str.match(/[A-z]/g);
console.log(result);//['a', 'b', 'c', 'd', 'e', 'g', 'f', 'A', 'B', 'C']
result = str.match(/[a-z]/g);
console.log(result);//['a', 'b', 'c', 'd', 'e', 'g', 'f']
result = str.match(/[a-z]/gi);
console.log(result);//['a', 'b', 'c', 'd', 'e', 'g', 'f', 'A', 'B', 'C']
/**
* replace()
* 可以将字符串中指定内容替换为新的内容
* 参数:
* 1.被替换的内容
* 2.新的内容
*  -默认只会替换第一个
*/
str = "1a2b3a4d5a6a7a9ABC";
result = str.replace("a", "@"); 
console.log(result); //1@2b3a4d5a6a7a9ABC
result = str.replace(/a/ig, "@"); 
console.log(result); //1@2b3@4d5@6@7@9@BC