JavaScript基础语法_JavaScript内置对象
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内置对象相关推荐
- 【融职培训】Web前端学习 第3章 JavaScript基础教程9 内置对象
一.内置对象概述 javascript为我们提供了很多内置对象,这些内置对象为我们提供了很多语言的基本功能.我们之前学过的数组就是JavaScript的内置对象,除了数组我们还应该了解的内置对象有:M ...
- JavaScript基础知识【内置对象】(六)
对象就是用于描述客观世界的特定实体.例如,"人"就是一个对象,具有身高,体重,年龄等特性,同时包含吃饭,睡觉等动作. 在javascript中,对象就是属性和方法的集合.属性表示的 ...
- jsp输出金字塔_实验二 JSP语法及内置对象.doc
实验二 JSP语法及内置对象 燕山大学经济管理学院 JSP编程技术 实验指导书 经济管理学院电子商务系 2011年5月 实 验 说 明 <JSP编程技术>JSP(Java Server P ...
- 第4章 JSP语法、内置对象
第4章 JSP语法.内置对象 关于Spring Boot+Vue全栈开发实战(三方面)前端 全栈 Spring Boot JSP概述 4.1.1 什么是JSP(Java Server Page) 4. ...
- ES6新增语法与内置对象扩展
技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.什么是ES6 ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项 ...
- jsp 将页面中的值导入java中_JavaWeb - JSP:概述和语法,内置对象,JavaBean 组件,MVC 设计模式
JSP 的概述 概念 JSP 是 Java Server Pages 的简称,跟 Servlet 一样可以动态生成 HTML 响应, JSP 文件命名为 xxx.jsp. 与 Servlet 不同,J ...
- 前端-JS基础之常用内置对象
定时器 setTimeout() 用来指定某个函数或字符串在指定的毫秒数之后执行 只执行一次 clearTimeout() 清除定时器 /*setTimeout() 有两个参数1.执行体 注意:函数传 ...
- JavaScript基础 -- js常用内置方法和对象
JS中常用的内置函数如下: 1.eval(str):计算表达式的结果. 2.parseInt(str,n):将符串转换成整数数字形式(可指定几进制). 3.parseFloat(str):将字符串转换 ...
- javascript数据类型和常用内置对象(重要!)
数据类型:w3c undefind null string number boolean Array object 常用内置javascript对象: Array对象:Date对象:正则 ...
最新文章
- java robot 控制鼠标_Java-探索Robot类:[2]自动控制鼠标
- python画函数曲线-使用Python画数学函数曲线
- 《一》php多进程编程:第一次fork
- mysql as用法_Spring Data R2DBC响应式操作MySQL
- Modular multiplicative inverse 模逆元
- 并发数据结构- 1.1.1 性能
- Android常用代码混淆模板
- python实践项目(二)
- cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wwma2wne\opencv\module
- caffe常用小工具
- PHP实现程序单例执行
- vue组件库开发(npm包发布)
- 云计算机怎么给学生机安装软件,如何在云计算机服务器中安装学生机应用程序? 在云计算机服务器中安装学生机应用程序的方法?...
- 大道至简(周爱民)第一章读后感-------伪代码
- W7系统dns辅服务器异常,win7dns服务器异常原因及解决方法
- 百度推广年终总结,百度竞价年终总结参考
- 基因功能预测工具-HMMER的安装
- SVN SERVER 安装
- 两个不同局域网电脑如何互相访问
- 中国当代新型恋爱关系白皮书
热门文章
- 芒果改进目录一览|原创改进YOLOv5、YOLOv7等YOLO模型全系列目录 | 人工智能专家唐宇迪老师联袂推荐
- html 引入网页title的图标,生成 .ico 图标
- 图解 git 仓库概念
- 美国“短命”CEO排行:神人17天即遭解雇
- 阿里巴巴:今年营收 5000 亿,明年GMV要再增一万亿
- 数据库--02--数据模型--层次模型.网状模型.关系模型
- Python3-StringIO和BytesIO的总结
- 【线刷大师】纯净root线刷包,线刷教程及工具
- 数字中国城市巡礼之济宁:以信立本,大数据点亮城市信用招牌
- Kettle CSV文件与json文件转换实例