JavaScript内置对象

  • JavaScript中的对象分为3种:自定义对象,内置对象,浏览器对象
  • 前两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象属于js独有
  • 内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)
  • 内置对象最大的优点就是帮助我们快速开发
  • JavaScript提供了多个内置对象;Math,Date,Array,String等

Number Object

在 JavaScript 中可以使用十进制、十六进制或八进制表示法来表示整数或浮点数。与其它编程语言不同,JavaScript 中的数字并不区分整数和浮点数,统一使用 IEEE754 标准(二进制浮点数算术标准)的 64 位浮点格式表示数字,能表示的最大值(Number.MAX_VALUE)为 ±1.7976931348623157e+308,最小值(Number.MIN_VALUE)为 ±5e-324。
示例:

 var x = 123;    // 整数var y = 3.14;   // 浮点数var z = 0xff;   // 十六进制数:255

对于比较大的数字可以使用指数表示法来表示,例如 6.02e+23 等于 6.02 x 10²³,

示例:

 //JavaScript 中能够表示的最大的整数是 2⁵³ - 1,即 9007199254740991,能够表示的最小整数是 -(2⁵³ - 1),即 -9007199254740991。var x = 1.57e4;     // 等于 15700var y = 4.25e+6;    // 等于 4250000var z = 4.25e-6;    // 等于 0.00000425

除了可以使用十进制表示数字外,您也可以使用八进制或十六进制表示法来表示数字,其中八进制表示法使用 0 作为前缀,十六进制表示法使用 0x 作为前缀,示例代码如下:

 //整数可以用十进制、十六进制和八进制表示法表示,浮点数可以用十进制或指数表示法表示。var a = 0377;     // 等于 255var b = 0123;     // 等于 83var c = 0xff;     // 等于 255var d = 0xb4;     // 等于 180

±Infinity(无穷)

Infinity 是一个特殊的值,表示无穷大。当一个表达式的运算结果超过了 JavaScript 所能表示的数字上限或下限时,JavaScript 就会使用 Infinity 或 -Infinity 表示这个结果,其中 Infinity 表示正无穷大,-Infinity 表示负无穷大。

示例:

 var a = 5 / 0;      // 等于 Infinityvar b = -5 / 0;     // 等于 -Infinity

NaN(非数字)

NaN 同样是 JavaScript 中的一个特殊值,用来表示某个值不是数字。NaN 不等于(通过 、!=、=、!=== 比较)其它任何值(包括另外一个 NaN 值),使用 isNaN() 函数可以判断一个数是否为 NaN。

以下几种操作会返回 NaN:

  • 使用函数无法将参数转换为数字时会返回 NaN,例如 parseInt(“abc”)、new Number(“abc”);
  • 结果不是实数的数学运算,例如 Math.sqrt(-1);
  • 任何操作数中包含 NaN 的表达式,例如 5 * NaN;
  • 涉及字符串的非加法运算,且字符串无法自动转换为数字,例如 “foo” / 5。

Number 对象

Number 对象是原始数值的包装对象,创建 Number 对象的语法格式如下:

 var myNum = new Number(value);var myNum = Number(value);

其中 value 为要创建的 Number 对象的数值,若 value 为一个非数字的值,则会尝试将其转换为数字,若转换失败则会返回 NaN。

当 Number() 函数和 new 运算符一起使用时,会创建一个新的 Number 对象。如果不用 new 运算符,把 Number() 当作一个函数来调用,则会将其中的参数转换为一个数值,并且返回这个值(如果转换失败,则返回 NaN)。

示例:

 var a = new Number("123");var b = Number("456");var c = 789;var d = new Number("abc");document.write(typeof a + "<br>");      // 输出:objectdocument.write(typeof b + "<br>");      // 输出:numberdocument.write(typeof c + "<br>");      // 输出:numberdocument.write(d + "<br>");             // 输出:NaN

Number 属性

Number 对象中提供了一些属性,如下表所示:

属性 描述
Number.MAX_VALUE JavaScript 中所能表示的最大值
Number.MIN_VALUE JavaScript 中所能表示的最小值
Number.NaN 非数字
Number.NEGATIVE_INFINITY 负无穷,在溢出时返回
Number.POSITIVE_INFINITY 正无穷,在溢出时返回
Number.EPSILON 表示 1 与 Number 所能表示的大于 1 的最小浮点数之间的差
Number.MIN_SAFE_INTEGER 最小安全整数,即 -9007199254740991
Number.MAX_SAFE_INTEGER 最大安全整数,即 9007199254740991

Number 方法

除了属性外,Number 对象中还提供了一些方法,如下表所示:

方法 描述
Number.parseFloat() 将字符串转换成浮点数,和全局方法 parseFloat() 作用相同
Number.parseInt() 将字符串转换成整型数字,和全局方法 parseInt() 作用相同
Number.isFinite() 判断 Number 对象是否为有穷数
Number.isInteger() 判断 Number 对象是否为整数
Number.isNaN() 判断 Number 对象是否为 NaN 类型
Number.isSafeInteger() 判断 Number 对象是否为安全整数,即范围为 -(2⁵³ - 1)到 2⁵³ - 1 之间的整数
Number.toString() 把 Number 对象转换为字符串,使用指定的基数
Number.toLocaleString() 把 Number 对象转换为字符串,使用本地数字格式顺序
Number.toFixed() 把 Number 对象转换为字符串,结果的小数点后有指定位数的数字
Number.toExponential() 把 Number 对象的值转换为指数计数法
Number.toPrecision() 把 Number 对象格式化为指定的长度
Number.valueOf() 返回一个 Number 对象的基本数字值

String Object

JavaScript String 对象用于处理字符串,其中提供了大量操作字符串的方法,以及一些属性。

创建 String 对象的语法格式如下:

//参数 value 为要创建的字符串或字符串对象。
var val = new String(value);
var val = String(value);

JavaScript 中,字符串和字符串对象之间能够自由转换,因此不论是创建字符串对象还是直接声明字符串类型的变量,都可以直接使用字符串对象中提供的方法和属性。

String 对象中的属性

下表中列举了 String 对象中提供的属性及其描述信息:

属性 描述
constructor 获取创建此对象的 String() 函数的引用
length 获取字符串的长度
prototype 通过该属性您可以向对象中添加属性和方法

示例:

var str = new String('JavaScript');
String.prototype.name = null;
str.name = "Hello World!";
console.log(str.constructor);       // 输出:function String() { [native code] }
console.log(str.length);            // 输出:10
console.log(str.name);                       // 输出:Hello World!

String 对象中的方法

下表中列举了 String 对象中提供的方法及其描述信息:

方法 描述
anchor() 创建一个 HTML 锚点,即生成一个标签,标签的 name 属性为 anchor() 方法中的参数
big() 用大号字体显示字符串
blink() 显示闪动的字符串
bold() 使用粗体显示字符串
charAt() 返回在指定位置的字符
charCodeAt() 返回指定字符的 Unicode 编码
concat() 拼接字符串
fixed() 以打字机文本显示字符串
fontcolor() 使用指定的颜色来显示字符串
fontsize() 使用指定的尺寸来显示字符串
fromCharCode() 将字符编码转换为一个字符串
indexOf() 检索字符串,获取给定字符串在字符串对象中首次出现的位置
italics() 使用斜体显示字符串
lastIndexOf() 获取给定字符串在字符串对象中最后出现的位置
link() 将字符串显示为链接
localeCompare() 返回一个数字,并使用该数字来表示字符串对象是大于、小于还是等于给定字符串
match() 根据正则表达式匹配字符串中的字符
replace() 替换与正则表达式匹配的子字符串
search() 获取与正则表达式相匹配字符串首次出现的位置
slice() 截取字符串的片断,并将其返回
small() 使用小字号来显示字符串
split() 根据给定字符将字符串分割为字符串数组
strike() 使用删除线来显示字符串
sub() 把字符串显示为下标
substr() 从指定索引位置截取指定长度的字符串
substring() 截取字符串中两个指定的索引之间的字符
sup() 把字符串显示为上标
toLocaleLowerCase() 把字符串转换为小写
toLocaleUpperCase() 把字符串转换为大写
toLowerCase() 把字符串转换为小写
toUpperCase() 把字符串转换为大写
toString() 返回字符串
valueOf() 返回某个字符串对象的原始值

示例:

var str = new String('JavaScript教程');
document.write(str.anchor("myanchor") + "<br>");     // 生成一段 HTML 代码:<a name="myanchor">JavaScript教程</a>
document.write(str.big() + "<br>");                  // 生成一段 HTML 代码:<big>JavaScript教程</big>
document.write(str.blink() + "<br>");                // 生成一段 HTML 代码:<blink>JavaScript教程</blink>
document.write(str.bold() + "<br>");                 // 生成一段 HTML 代码:<b>JavaScript教程</b>
document.write(str.charAt(10) + "<br>");             // 获取 str 中的第 11 个字符,输出:教
document.write(str.charCodeAt(10) + "<br>");         // 获取 str 中第 11 个字符的 Unicode 编码,输出:25945
document.write(str.concat(" String 对象") + "<br>"); // 将字符串“ String 对象”拼接到字符串 str 之后,输出:JavaScript教程 String 对象
document.write(str.fixed() + "<br>");                // 生成一段 HTML 代码:<tt>JavaScript教程</tt>
document.write(str.fontcolor("red") + "<br>");       // 生成一段 HTML 代码:<font color="red">JavaScript教程</font>
document.write(str.fontsize(2) + "<br>");            // 生成一段 HTML 代码:<font size="2">JavaScript教程</font>
document.write(String.fromCharCode(72,69,76,76,79) + "<br>");             // 将 Unicode 编码转换为具体的字符,输出:HELLO
document.write(str.indexOf("Script") + "<br>");             // 获取字符串“Script”在 str 中首次出现的为,输出:4
document.write(str.italics() + "<br>");                     // 生成一段 HTML 代码:<i>JavaScript教程</i>
document.write(str.lastIndexOf("a") + "<br>");              // 获取字符串“a”在 str 中最后一次出现的位置,输出 3
document.write(str.link("http://c.biancheng.net/") + "<br>");  // 生成一段 HTML 代码:<a href="http://c.biancheng.net/">JavaScript教程</a>
document.write(str.localeCompare("JavaScript") + "<br>");       // 比较字符串对象与给定字符串,返回:1
document.write(str.match(/[abc]/g) + "<br>");                   // 根据正则 /[abc]/g 检索 str,返回:a,a,c
document.write(str.replace(/[abc]/g, "Y") + "<br>");            // 使用字符串“Y”替换正则 /[abc]/g 匹配的字符,返回:JYvYSYript教程
document.write(str.search(/[Script]/g) + "<br>");               // 获取与正则匹配的字符串首次出现的位置,返回:4
document.write(str.slice(6,11) + "<br>");           // 截取字符串(获取 str 中第 7 到第 11 个字符),返回:ript教
document.write(str.small() + "<br>");               // 生成一段 HTML 代码:<small>JavaScript教程</small>
document.write(str.split("a") + "<br>");            // 根据“a”将字符串 str 拆分为数组,返回:J,v,Script教程
document.write(str.strike() + "<br>");              // 生成一段 HTML 代码:<strike>JavaScript教程</strike>
document.write(str.sub() + "<br>");                 // 生成一段 HTML 代码:<sub>JavaScript教程</sub>
document.write(str.substr(3, 7) + "<br>");          // 从第 4 个字符开始,向后截取 7 个字符,返回:aScript
document.write(str.substring(3, 7) + "<br>");       // 截取字符串(获取 str 中第 4 到第 7 个字符),返回:aScr
document.write(str.sup() + "<br>");                 // 生成一段 HTML 代码:<sup>JavaScript教程</sup>
document.write(str.toLocaleLowerCase() + "<br>");   // 返回:javascript教程
document.write(str.toLocaleUpperCase() + "<br>");   // 返回:JAVASCRIPT教程
document.write(str.toLowerCase() + "<br>");         // 返回:javascript教程
document.write(str.toUpperCase() + "<br>");         // 返回:JAVASCRIPT教程
document.write(str.toString() + "<br>");            // 返回:JavaScript教程
document.write(str.valueOf() + "<br>");             // 返回:JavaScript教程

特殊字符

通过前面的学习我们知道,可以使用单引号和双引号来定义字符串,但如果字符串中也需要添加单引号或双引号该怎么办呢?我们可以使用反斜线\来转义字符串中的引号,

示例:

var str1 = "He said \"Goodbye\"";
var str2 = 'it\'s okay';

除了单引号和双引号外,JavaScript 中还提供了一些能够使用反斜线转义的特殊字符,如下表所示:

代码 输出 代码 输出
单引号 \r 回车
" 双引号 \t tab
\ 反斜线本身 \b 空格
\n 换行 \f 换页

Array Object

数组是值的有序集合,数组中的每个值称为一个元素,每个元素在数组中都有一个数字位置,称为索引,索引从 0 开始,依次递增。在 JavaScript 中,您可以使用 Array 对象定义数组,此外,Array 对象中还提供了各种有关数组的属性和方法。

创建 Array 对象的语法格式如下:

//values 为数组中各个元素组成的列表,多个元素之间使用逗号分隔。
var arr = new Array(values);
var arr = Array(values);

示例:

 //在使用 new Array() 来定义数组时,如果只提供一个数值参数,那么这个数值将用来表示数组的初始长度,例如new Array(5)表示定义一个长度为 5 的数组。JavaScript 中,数组允许的最大长度为 2³²-1,即 4294967295。var fruits = new Array( "apple", "orange", "mango" );console.log(fruits);  // 输出:["apple", "orange", "mango"]

除了可以使用 Array() 函数来定义数组外,您也可以直接使用方括号[ ]来定义数组,[ ]中为数组中的各个元素,多个元素之间使用逗号,进行分隔。示例代码如下:

var fruits = [ "apple", "orange", "mango" ];
console.log(fruits);        // 输出:(3) ["apple", "orange", "mango"]

可以通过数组的索引来访问数组中的各个元素,示例代码如下:

var fruits = [ "apple", "orange", "mango" ];
document.write(fruits[0] + "<br>");     // 输出:apple
document.write(fruits[1] + "<br>");     // 输出:orange
document.write(fruits[2] + "<br>");     // 输出:mango

Array 对象中的属性

下表中列举了 Array 对象中提供的属性及其描述信息:

属性 描述
constructor 返回创建数组对象的原型函数
length 设置或返回数组中元素的个数
prototype 通过该属性您可以向对象中添加属性和方法

示例:

 var cars = new Array("Saab", "Volvo", "BMW");Array.prototype.name = null;cars.name = "JavaScript";document.write(cars.constructor + "<br>");      // 输出:function Array() { [native code] }document.write(cars.length + "<br>");           // 输出:3document.write(cars.name + "<br>");             // 输出:JavaScript

Array 对象中的方法

下表中列举了 Array 对象中提供的方法及其描述信息:

方法 描述
concat() 拼接两个或更多的数组,并返回结果
copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中
entries() 返回数组的可迭代对象
every() 检测数值元素的每个元素是否都符合条件
fill() 使用一个固定值来填充数组
filter() 检测数值元素,并返回符合条件所有元素的数组
find() 返回符合传入函数条件的数组元素
findIndex() 返回符合传入函数条件的数组元素索引
forEach() 数组每个元素都执行一次回调函数
from() 通过给定的对象中创建一个数组
includes() 判断一个数组是否包含一个指定的值
indexOf() 搜索数组中的元素,并返回它所在的位置
isArray() 判断对象是否为数组
join() 把数组的所有元素放入一个字符串
keys() 返回数组的可迭代对象,包含原始数组的键(key)
lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置
map() 通过指定函数处理数组的每个元素,并返回处理后的数组
pop() 删除数组的最后一个元素并返回删除的元素
push() 向数组的末尾添加一个或更多元素,并返回数组的长度
reduce() 累加(从左到右)数组中的所有元素,并返回结果
reduceRight() 累加(从右到左)数组中的所有元素,并返回结果
reverse() 反转数组中元素的顺序
shift() 删除并返回数组的第一个元素
slice() 截取数组的一部分,并返回这个新的数组
some() 检测数组元素中是否有元素符合指定条件
sort() 对数组的元素进行排序
splice() 从数组中添加或删除元素
toString() 把数组转换为字符串,并返回结果
unshift() 向数组的开头添加一个或多个元素,并返回新数组的长度
valueOf() 返回数组对象的原始值

示例:

 var fruits = ["Orange", "Banana", "Apple", "Papaya", "Mango"];document.write(fruits.entries() + "<br>");              // 返回:[object Array Iterator]document.write(fruits.includes("Apple") + "<br>");      // 返回:truedocument.write(fruits.fill("grape") + "<br>");          // 返回:grape,grape,grape,grape,grapevar fruits = ["Orange", "Banana", "Apple", "Papaya", "Mango"];document.write(fruits.indexOf("Mango") + "<br>");               // 返回:4document.write(Array.isArray(fruits) + "<br>");                 // 返回:truedocument.write(fruits.join("-") + "<br>");                      // 返回:Orange-Banana-Apple-Papaya-Mangodocument.write(fruits.lastIndexOf("Banana") + "<br>");          // 返回:1document.write(fruits.pop() + "<br>");                          // 返回:Mangodocument.write(fruits.push("Watermelon") + "<br>");             // 返回:5document.write(fruits.unshift("Lemon","Pineapple") + "<br>");   // 返回:7document.write(fruits.slice(1, 5) + "<br>");                    // 返回:Pineapple,Orange,Banana,Appledocument.write(fruits.sort() + "<br>");                         // 返回:Apple,Banana,Lemon,Orange,Papaya,Pineapple,Watermelondocument.write(fruits.valueOf() + "<br>");                      // 返回:Apple,Banana,Lemon,Orange,Papaya,Pineapple,Watermelon

Date Object

Date 对象是 JavaScript 内置的对象,通过它您可以访问计算机系统的时间,此外,Date 对象中还提供了多种用于管理、操作和格式化时间/日期的方法。

创建 Date 对象

在开始处理时间和日期之前,我们需要先创建一个 Date 对象。与其他对象(数组对象、字符串对象等)不同,Date 对象不能直接声明,必须通过 Date() 函数定义。

JavaScript 中提供了四种不同的方法来创建 Date 对象

 var time = new Date();var time = new Date(milliseconds);var time = new Date(datestring);var time = new Date(year, month, date[, hour, minute, second, millisecond]);

参数说明如下:

  • 不提供参数:若调用 Date() 函数时不提供参数,则创建一个包含当前时间和日期的 Date 对象;
  • milliseconds(毫秒):若提供一个数值作为参数,则会将这个参数视为一个以毫秒为单位的时间值,并返回自 1970-01-01 00:00:00 起,经过指定毫秒数的时间,例如 new Date(5000) 会返回一个 1970-01-01 00:00:00 经过 5000 毫秒之后的时间;
  • datestring(日期字符串):若提供一个字符串形式的日期作为参数,则会将其转换为具体的时间,日期的字符串形式有两种,如下所示:
    • YYYY/MM/dd HH:mm:ss(推荐):若省略时间部分,则返回的 Date 对象的时间为 00:00:00;
    • YYYY-MM-dd HH:mm:ss:若省略时间部分,则返回的 Date 对象的时间为 08:00:00(加上本地时区),若不省略,在 IE 浏览器中会转换失败。
  • 将具体的年月日、时分秒转换为 Date 对象,其中:
    • year:表示年,为了避免错误的产生,推荐使用四位的数字来表示年份;
    • month:表示月,0 代表 1 月,1 代表 2 月,以此类推;
    • date:表示月份中的某一天,1 代表 1 号,2 代表 2 号,以此类推;
    • hour:表示时,以 24 小时制表示,取值范围为 0 ~ 23;
    • minute:表示分,取值范围为 0 ~ 59;
    • second:表示秒,取值范围为 0 ~ 59;
    • millisecond:表示毫秒,取值范围为 0 ~ 999。

示例:

 var time1 = new Date();var time2 = new Date(1517356800000);var time3 = new Date("2018/12/25 12:13:14");var time4 = new Date(2020, 9, 12, 15, 16, 17);console.log(time1);     // 输出:Fri Jul 23 2021 13:41:39 GMT+0800 (中国标准时间)console.log(time2);     // 输出:Wed Jan 31 2018 08:00:00 GMT+0800 (中国标准时间)console.log(time3);     // 输出:Tue Dec 25 2018 12:13:14 GMT+0800 (中国标准时间)console.log(time4);     // 输出:Mon Oct 12 2020 15:16:17 GMT+0800 (中国标准时间)

Date 对象中的属性

下表中列举了 Date 属性中提供的属性及其描述:

属性 描述
constructor 返回创建 Date 对象的原型函数
prototype 通过该属性您可以向对象中添加属性和方法

示例:

 var time = new Date();Date.prototype.name = null;time.name = "JavaScript";console.log(time.constructor);      // 输出:function Date() { [native code] }console.log(time.name);             // 输出:JavaScript

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 对象的原始值

示例:

 var time = new Date();console.log(time.getDate());             // 输出:23console.log(time.getDay());              // 输出:5console.log(time.getFullYear());         // 输出:2021console.log(time.getHours());            // 输出:16console.log(time.getMonth());            // 输出:6console.log(time.getTime());             // 输出:1627028869285console.log(time.getUTCDate());          // 输出:23console.log(time.toDateString());        // 输出:Fri Jul 23 2021console.log(time.toString());            // 输出:Fri Jul 23 2021 16:29:57 GMT+0800 (中国标准时间)console.log(time.toLocaleDateString());  // 输出:2021/7/23console.log(time.toLocaleTimeString());  // 输出:下午4:31:00console.log(time.toLocaleString());      // 输出:2021/7/23下午4:31:00

Math Object

Math 是 JavaScript 中的一个内置对象,其中提供了一些数学中常用的常量值和函数,用来实现一些数学中常见计算,例如计算平均数、求绝对值、四舍五入等。

与前面介绍的几个对象(例如 Number 对象、String 对象、Array 对象等)不同,调用 Math 对象中的属性和方法无需预先使用 new 运算符来创建它,直接将 Math 作为对象调用即可,例如:

 var pi_val = Math.PI;                 // 数学中 π 的值:3.141592653589793var abs_val = Math.sin(-5.35);  // -5.35 的绝对值:5.35

Math 对象中的属性

下表中列举了 Math 对象中提供的属性及其描述信息:

属性 描述
E 返回算术常量 e,即自然对数的底数(约等于 2.718)
LN2 返回 2 的自然对数(约等于 0.693)
LN10 返回 10 的自然对数(约等于 2.302)
LOG2E 返回以 2 为底的 e 的对数(约等于 1.443)
LOG10E 返回以 10 为底的 e 的对数(约等于 0.434)
PI 返回圆周率 π(约等于 3.14159)
SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)
SQRT2 返回 2 的平方根(约等于 1.414)

示例:

 console.log(Math.E);            // 输出:2.718281828459045console.log(Math.LN2);          // 输出:0.6931471805599453console.log(Math.LN10);         // 输出:2.302585092994046console.log(Math.LOG2E);        // 输出:1.4426950408889634console.log(Math.LOG10E);       // 输出:0.4342944819032518console.log(Math.PI);           // 输出:3.141592653589793console.log(Math.SQRT1_2);      // 输出:0.7071067811865476console.log(Math.SQRT2);        // 输出:1.4142135623730951

Math 对象中的方法

下表中列举了 Math 对象中提供的方法及其描述信息:

方法 描述
abs(x) 返回 x 的绝对值
acos(x) 返回 x 的反余弦值
acosh(x) 返回 x 的反双曲余弦值
asin(x) 返回 x 的反正弦值
asinh(x) 返回 x 的反双曲正弦值
atan(x) 返回 x 的反正切值
atanh(x) 返回 x 的反双曲正切值
atan2(y,x) 返回 y/x 的反正切值
cbrt(x) 返回 x 的立方根
ceil(x) 对 x 进行向上取整,即返回大于 x 的最小整数
clz32(x) 返回将 x 转换成 32 无符号整形数字的二进制形式后,开头 0 的个数
cos(x) 返回 x 的余弦值
cosh(x) 返回 x 的双曲余弦值
exp(x) 返回算术常量 e 的 x 次方,即 Ex
expm1(x) 返回 exp(x) - 1 的值
floor(x) 对 x 进行向下取整,即返回小于 x 的最大整数
fround(x) 返回最接近 x 的单精度浮点数
hypot([x, [y, […]]]) 返回所有参数平方和的平方根
imul(x, y) 将参数 x、y 分别转换位 32 位整数,并返回它们相乘后的结果
log(x) 返回 x 的自然对数
log1p(x) 返回 x 加 1 后的自然对数
log10(x) 返回 x 以 10 为底的对数
log2(x) 返回 x 以 2 为底的对数
max([x, [y, […]]]) 返回多个参数中的最大值
min([x, [y, […]]]) 返回多个参数中的最小值
pow(x,y) 返回 x 的 y 次幂
random() 返回一个 0 到 1 之间的随机数
round(x) 返回 x 四舍五入后的整数
sign(x) 返回 x 的符号,即一个数是正数、负数还是 0
sin(x) 返回 x 的正弦值
sinh(x) 返回 x 的双曲正弦值
sqrt(x) 返回 x 的平方根
tan(x) 返回 x 的正切值
tanh(x) 返回 x 的双曲正切值
toSource() 返回字符串"Math"
trunc(x) 返回 x 的整数部分
valueOf() 返回 Math 对象的原始值

示例:

 console.log(Math.abs(-3.1415));     // 输出:3.1415console.log(Math.acos(0.5));        // 输出:1.0471975511965979console.log(Math.ceil(1.45));       // 输出:2console.log(Math.exp(1));           // 输出:2.718281828459045console.log(Math.floor(5.99));      // 输出:5console.log(Math.log(6));           // 输出:1.791759469228055console.log(Math.max(4, 8, 1, 9));  // 输出:9console.log(Math.min(4, 8, 1, 9));  // 输出:1console.log(Math.random());         // 输出:0.9172594288928195console.log(Math.pow(2, 3));        // 输出:8console.log(Math.sign(-123));       // 输出:-1console.log(Math.sqrt(125));        // 输出:11.180339887498949

RegExp Object(正则表达式)

JavaScript 字符串是在编程中使用最多的一种数据类型,很多地方都需要对字符串进行操作,例如判断一个字符串是否为一个合法的 E-mail 地址、从字符串截取指定的部分等。

正则表达式是一种用于匹配字符串或特殊字符的一种逻辑公式,所谓逻辑公式就是由一些特定字符组合成的,用来表示某些规则的特殊字符串,可以表达对字符串数据的过滤逻辑。

在 JavaScript 中需要借助 RegExp 对象来使用正则表达式,要创建 RegExp 对象有两种方法,如下所示:

 var patt = new RegExp(pattern, modifiers);var patt = /pattern/modifiers;

参数说明如下:

  • pattern:正则表达式,按照正则表达式的语法定义的正则表达式;
  • modifiers:修饰符,用来设置字符串的匹配模式,可选值如下表所示:
修饰符 描述
i 执行对大小写不敏感的匹配
g 执行全局匹配(查找所有的匹配项,而非在找到第一个匹配项后停止)
m 执行多行匹配
s 允许使用.匹配换行符
u 使用 Unicode 码的模式进行匹配
y 执行“粘性”搜索,匹配从目标字符串的当前位置开始

注意:== 当使用 new 关键字创建 RegExp 对象时,需要将正则表达式中的特殊字符转义,即在特殊字符前加反斜杠\,例如\w+。==

定义正则表达式

正则表达式由字母、数字、标点以及一些特殊特殊字符组成,例如/abc/、/(\d+).\d*/,可以在正则表达式中使用的特殊字符如下表所示:

特殊字符 含义
\ 转义字符,在非特殊字符之前使用反斜杠表示下一个字符是特殊字符,不能按照字面理解,例如\b表示一个字符边界;在特殊字符之前使用反斜杠则表示下一个字符不是特殊字符,应该按照字面理解。例如反斜杠本身,若要在正则表达式中定义一个反斜杠,则需要在反斜杠前再添加一个反斜杠\。
^ 匹配字符串的开头,如果设置了修饰符 m,则也可以匹配换行符后紧跟的位置。 例如“/^A/”并不会匹配“an A”中的“A”,但是会匹配“An E”中的“A”。
$ 匹配字符串的末尾,如果设置了修饰符 m,则也可以匹配换行符之前的位置。 例如“/t$/”并不会匹配“eater”中的“t”,但是会匹配“eat”中的“t”。
* 匹配前一个表达式 0 次或多次,等价于 {0,}。例如“/bo*/”能够匹配“A ghost boooooed”中的“booooo”和“A bird warbled”中的“b”,但是在“A goat grunted”中不会匹配任何内容。
+ 匹配前面一个表达式 1 次或者多次,等价于 {1,}。例如“/a+/”能够匹配“candy”中的“a”和“caaaaaaandy”中所有的“a”,但是在“cndy”中不会匹配任何内容。
? 匹配前面一个表达式 0 次或者 1 次,等价于 {0,1}。例如“/e?le?/”能够匹配“angel”中的“el”,“angle”中的“le”以及“oslo”中的“l”。
. 匹配除换行符之外的任何单个字符。例如“/.n/”将会匹配“nay, an apple is on the tree”中的“an”和“on”。
(x) 匹配“x”并记住这一匹配项,这里的括号被称为捕获括号。
(?:x) 匹配“x”但是不记住匹配项,这里的括号被称为非捕获括号。
x(?=y) 当“x”后面跟着“y”时,匹配其中的“x”。例如“/Jack(?=Sprat)/”会匹配后面跟着“Sprat”的“Jack”,“/Jack(?=Sprat
(?<=y)x 当“x”前面是“y”时,匹配其中的“x”。例如“/(?<=Jack)Sprat/”会匹配前面未“Sprat”的“Jack”,“/(?<=Jack
x(?!y) 当“x”后面不是“y”时,匹配其中的“x”。 例如“/\d+(?!.)/”会匹配“3.141”中的“141”,而不是“3.141”。
(?<!y)x 当“x”前面不是“y”时,匹配其中的“x”。
x y
{n} n 是一个正整数,表示匹配前一个字符 n 次。例如“/a{2}/”不会匹配“candy”中的“a”,但是能够匹配“caandy”中所有的“a”,以及“caaandy”中的前两个“a”。
{n,} n 是一个正整数,表示匹配前一个字符至少 n 次。例如“/a{2,}/”能够匹配“aa”、“aaaa”或“aaaaa”,但不会匹配“a”。
{n,m} n 和 m 都是整数,表示匹配前一个字符至少 n 次,最多 m 次,如果 n 或 m 等于 0,则表示忽略这个值。例如“/a{1, 3}/”能够匹配“candy”中的“a”,“caandy”中的前两个“a”,“caaaaaaandy”中的前三个“a”。
[xyz] 转义序列,匹配 x、y 或 z,您也可以使用破折号-来指定一个字符范围。例如“[abcd]”和“[a-d]”是一样的,它们都能匹配“brisket”中的“b”,“city”中的“c”。
[^xyz] 反向字符集,匹配除 x、y、z 以外的任何字符,您通用也可以使用破折号-来指定一个字符范围。例如“[abc]”和“[a-c]”是一样的,它们都能匹配“brisket”中的“r”,“chop”中的“h”。
[\b] 匹配一个退格符,注意:不要和 \b 混淆。
\b 匹配一个单词的边界,即单词的开始或末尾。例如“/\bm/”能够匹配“moon”中的“m”,但不会匹配“imoon”中的“m”。
\B 匹配一个非单词边界。例如“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
\cX 当 X 是 A 到 Z 之间的字符时,匹配字符串中的一个控制符。例如“/\cM/”能够匹配字符串中的“control-M(U+000D)”。
\d 匹配一个数字,等价于“[0-9]”。例如“/\d/”或者“/[0-9]/”能够匹配“B2 is the suite number.”中的“2”。
\D 匹配一个非数字字符,等价于“[^0-9]”。 例如“/\D/”或者“/[^0-9]/”能够匹配“B2 is the suite number.”中的“B”。
\f 匹配一个换页符 (U+000C)。
\n 匹配一个换行符 (U+000A)。
\r 匹配一个回车符 (U+000D)。
\s 匹配一个空白字符,包括空格、制表符、换页符和换行符,等价于“[ \f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]”。例如“/\s\w*/”能够匹配“foo bar.”中的“bar”。
\S 匹配一个非空白字符,等价于“[^\f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]”。例如“/\S\w*/”能够匹配“foo bar.”中的“foo”。
\t 匹配一个水平制表符 (U+0009)。
\v 匹配一个垂直制表符 (U+000B)。
\w 匹配一个单字字符(字母、数字或者下划线),等价于“[A-Za-z0-9_]”。例如“/\w/”能够匹配“apple,”中的“a”,“$5.28,”中的“5”和“3D.”中的“3”。
\W 匹配一个非单字字符,等价于“[A-Za-z0-9_]”。例如“/\W/”或者“/[A-Za-z0-9_]/”能够匹配“50%.”中的“%”。
\n 获取最后的第 n 个匹配的值。比如“/apple(,)\sorange\1/”能够匹配“apple, orange, cherry, peach.”中的“apple, orange,”。
\0 匹配 NULL(U+0000)字符,不要在这后面跟其它小数,因为 \0 是一个八进制转义序列。
\xhh 匹配一个两位十六进制数(\x00-\xFF)表示的字符。
\uhhhh 匹配一个四位十六进制数表示的 UTF-16 代码单元。
\u{hhhh}或\u{hhhhh} (仅在设置了修饰符 u 时)匹配一个十六进制数表示的 Unicode 字符。

在正则表达式中.、*、?、+、[、]、(、)、{、}、^、$、|、\等字符被赋予了特殊的含义,若要在正则表达式中使用这些字符的原本意思时,需要在这些字符前添加反斜线进行转义,例如若要匹配.,则必须编写为.。

使用正则表达式

JavaScript RegExp 对象中提供了一些列方法来执行正则表达式,如下表所示:

方法 描述
compile() 在 1.5 版本中已废弃,编译正则表达式
exec() 在字符串搜索匹配项,并返回一个数组,若没有匹配项则返回 null
test() 测试字符串是否与正则表达式匹配,匹配则返回 true,不匹配则返回 false
toString() 返回表示指定对象的字符串

此外 String 对象中也提供了一些方法来执行正则表达式,如下表所示:

方法 描述
search() 在字符串中搜索匹配项,并返回第一个匹配的结果,若没有找到匹配项则返回 -1
match() 在字符串搜索匹配项,并返回一个数组,若没有匹配项则返回 null
matchAll() 在字符串搜索所有匹配项,并返回一个迭代器(iterator)
replace() 替换字符串中与正则表达式相匹配的部分
split() 按照正则表达式将字符串拆分为一个字符串数组

除了方法外,RegExp 对象中还提供了一些属性,如下所示:

属性 描述
constructor 返回一个函数,该函数是一个创建 RegExp 对象的原型
global 判断是否设置了修饰符 “g”
ignoreCase 判断是否设置了修饰符 “i”
lastIndex 用于规定下次匹配的起始位置
multiline 判断是否设置了修饰符 “m”
source 返回正则表达式的匹配模式

示例:

 var str = "Hello World!";var reg = /[a-g]/g;console.log(reg.exec(str));             // 输出:econsole.log(reg.test(str));             // 输出:trueconsole.log(reg.toString());            // 输出:/[a-g]/gconsole.log(str.search(reg));           // 输出:1console.log(str.match(reg));            // 输出:e,dconsole.log(str.matchAll(reg));         // 输出:[object RegExp String Iterator]console.log(str.replace(reg,));     // 输出:H+llo Worl+!console.log(str.split(reg));            // 输出:H,llo Worl,!

JavaScript基础语法_JavaScript内置对象相关推荐

  1. 【融职培训】Web前端学习 第3章 JavaScript基础教程9 内置对象

    一.内置对象概述 javascript为我们提供了很多内置对象,这些内置对象为我们提供了很多语言的基本功能.我们之前学过的数组就是JavaScript的内置对象,除了数组我们还应该了解的内置对象有:M ...

  2. JavaScript基础知识【内置对象】(六)

    对象就是用于描述客观世界的特定实体.例如,"人"就是一个对象,具有身高,体重,年龄等特性,同时包含吃饭,睡觉等动作. 在javascript中,对象就是属性和方法的集合.属性表示的 ...

  3. jsp输出金字塔_实验二 JSP语法及内置对象.doc

    实验二 JSP语法及内置对象 燕山大学经济管理学院 JSP编程技术 实验指导书 经济管理学院电子商务系 2011年5月 实 验 说 明 <JSP编程技术>JSP(Java Server P ...

  4. 第4章 JSP语法、内置对象

    第4章 JSP语法.内置对象 关于Spring Boot+Vue全栈开发实战(三方面)前端 全栈 Spring Boot JSP概述 4.1.1 什么是JSP(Java Server Page) 4. ...

  5. ES6新增语法与内置对象扩展

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.什么是ES6 ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项 ...

  6. jsp 将页面中的值导入java中_JavaWeb - JSP:概述和语法,内置对象,JavaBean 组件,MVC 设计模式

    JSP 的概述 概念 JSP 是 Java Server Pages 的简称,跟 Servlet 一样可以动态生成 HTML 响应, JSP 文件命名为 xxx.jsp. 与 Servlet 不同,J ...

  7. 前端-JS基础之常用内置对象

    定时器 setTimeout() 用来指定某个函数或字符串在指定的毫秒数之后执行 只执行一次 clearTimeout() 清除定时器 /*setTimeout() 有两个参数1.执行体 注意:函数传 ...

  8. JavaScript基础 -- js常用内置方法和对象

    JS中常用的内置函数如下: 1.eval(str):计算表达式的结果. 2.parseInt(str,n):将符串转换成整数数字形式(可指定几进制). 3.parseFloat(str):将字符串转换 ...

  9. javascript数据类型和常用内置对象(重要!)

    数据类型:w3c undefind  null  string  number  boolean  Array   object 常用内置javascript对象: Array对象:Date对象:正则 ...

最新文章

  1. java robot 控制鼠标_Java-探索Robot类:[2]自动控制鼠标
  2. python画函数曲线-使用Python画数学函数曲线
  3. 《一》php多进程编程:第一次fork
  4. mysql as用法_Spring Data R2DBC响应式操作MySQL
  5. Modular multiplicative inverse 模逆元
  6. 并发数据结构- 1.1.1 性能
  7. Android常用代码混淆模板
  8. python实践项目(二)
  9. cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wwma2wne\opencv\module
  10. caffe常用小工具
  11. PHP实现程序单例执行
  12. vue组件库开发(npm包发布)
  13. 云计算机怎么给学生机安装软件,如何在云计算机服务器中安装学生机应用程序? 在云计算机服务器中安装学生机应用程序的方法?...
  14. 大道至简(周爱民)第一章读后感-------伪代码
  15. W7系统dns辅服务器异常,win7dns服务器异常原因及解决方法
  16. 百度推广年终总结,百度竞价年终总结参考
  17. 基因功能预测工具-HMMER的安装
  18. SVN SERVER 安装
  19. 两个不同局域网电脑如何互相访问
  20. 中国当代新型恋爱关系白皮书

热门文章

  1. 芒果改进目录一览|原创改进YOLOv5、YOLOv7等YOLO模型全系列目录 | 人工智能专家唐宇迪老师联袂推荐
  2. html 引入网页title的图标,生成 .ico 图标
  3. 图解 git 仓库概念
  4. 美国“短命”CEO排行:神人17天即遭解雇
  5. 阿里巴巴:今年营收 5000 亿,明年GMV要再增一万亿
  6. 数据库--02--数据模型--层次模型.网状模型.关系模型
  7. Python3-StringIO和BytesIO的总结
  8. 【线刷大师】纯净root线刷包,线刷教程及工具
  9. 数字中国城市巡礼之济宁:以信立本,大数据点亮城市信用招牌
  10. Kettle CSV文件与json文件转换实例