JavaScript——内置对象(包括:内置对象的概述、Math对象、日期对象、数组对象、字符串对象)
内置对象概述
-
JavaScript中的对象分为以下3中:
(1)自定义对象
(2)内置对象
(3)浏览器对象
-
内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性或方法)。
-
内置对象的优点:帮助开发者快速开发。
-
JavaScript提供了多个内置对象:Math、Date、Array、String等。
Math对象
- Math数学对象不是一个构造函数,使用使用时不需要new,而是直接使用里面的属性和方法即可。
1.Math.max()/Math.min()
Math.max的语法结构如下: Math.max([value1[,value2,...]]) 注意: 1、如果给定的参数中至少有一个参数无法被转换成数字,则会返回NaN; 2、如果没有参数,则返回-Infinity
2.Math.PI
- 获取圆周率的值。
3.Math.abs()
- 取某个数的绝对值。
console.log(Math.abs(1)); //1 console.log(Math.abs('-1')) //1 console.log(Math.abs('蟹黄堡')); //NaN
4.Math.floor()
- 向下取整。
console.log(Math.floor(1.1)); //1
5.Math.ceil()
- 向上取整。
console.log(Math.ceil(1.1)); //2
6.Math.round()
- 四舍五入,但.5比较特殊,都是往大的取。
console.log(Math.round(1.1)); //1 console.log(Math.round(1.5)); //2 console.log(Math.round(-1.5)); //-1
7.随机数方法 random()
- Math.random()函数返回的是一个浮点数,伪随机数的范围在[0,1),不包括1。
- Math.random()不跟参数。
//得到一个两数之间的随机整数。包括两个数在内 function getRandom(min, max){ min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; }
日期对象
-
日期对象通过创建Date实例来处理日期和时间。
-
Data日期对象是一个构造函数,必须使用new实例化对象。
-
Date()方法如果没有参数,则返回当前系统的当前时间;如果括号里面有参数,则放回参数里面的时间(参数有数字型:2020,04,21,17,4,30;也有字符串型:‘2020-05-21 17:04:30’或者’2020/5/21 17:04:30’)。
-
获取日期指定部分的方法如下表:
方法名 | 说明 | 代码 |
---|---|---|
getFullYear() | 获取当年 | var time = new Date(); console.log(time.getFullYear()); |
getMonth() | 获取当月(范围是0~11,获取月份的时候实际值会比当月-1, 所以获取当月时要+1;而Data对象中的参数如果是数字型, 那么月份的输出结果会比设置的数值+1) |
var time = new Date(); console.log(time.getMonth()+1); |
getDate() | 获取当天日期 | var time = new Date(); console.log(time.getDate()); |
getDay() | 获取星期几(周日0到周六6) | var time = new Date(); console.log(time.getDay()); |
getHours() | 获取当前小时 | var time = new Date(); console.log(time.getHours()); |
getMinutes() | 获取当前分钟 | var time = new Date(); console.log(time.getMinutes()); |
getSeconds() | 获取当前秒钟 | var time = new Date(); console.log(time.getSeconds()); |
-
时间戳:
(1)通过valueOf()或getTime()的方法获取
var date = new Date(); console.log(date.valueOf()); console.log(date.getTime());
(2)简单写法(最常用)
var date1 += new Date(); console.log(date1);
(3)HTML5新增的写法
console.log(Date.now());
-
时间戳转换为天时分秒的公式如下:
天数:d = parseInt(总秒数 / 60 /60 /24);
小时数:h = parseInt(总秒数 / 60 /60 %24);
分数:m = parseInt(总秒数 / 60 % 60);
秒数:s = parsrInt(总秒数 % 60);
数组对象
-
创建数组对象的两种方式:
(1)字面量方式
var arr = [1,2,3]; cosnole.log(arr[0]);
(2)new Array()
var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(2); //如果只有一个数字,表示只创建一个长度为2,里面都是empty元素 var arr3 = new Array(2,3) //如果不只一个数字,则表示创建一个元素包括2和3的数组
-
检查是否为数组的方法:
(1)instanceof(返回一个布尔值)
var arr = [1,2,3]; console.log(arr instanceof Array);
(2)Array.isArray(参数)(返回一个布尔值)
var arr = [1,2,3]; console.log(Array.isArray(arr));
-
添加删除数组元素的方法(会改变原数组):
方法名 | 说明 | 返回值 |
---|---|---|
push(参数1…) | 末尾添加一个或多个元素,修改了原数组 | 返回新数组的长度 |
pop() | 删除数组最后一个元素,数组长度减1,修改了原数组 | 返回删除的那个元素值 |
unshift(参数1…) | 向数组的开头添加一个或多个元素,修改了原数组 | 返回新数组的长度 |
shift() | 删除数组的第一个元素,数组长度减1,修改了原数组 | 返回删除的那个元素值 |
//举例: var arr = [1,2,3]; arr.push(4,5); console.log(arr); //输出结果[1,2,3,4,5] var arr = [1,2,3]; consol.log(arr.push(4,5)); //输出结果是5 var arr = [1,2,3]; arr.pop(); console.log(arr); //输出结果[2,3] var arr = [1,2,3]; console.log(arr.pop()); //输出结果是1
- 数组排序(会改变原数组):
方法名 | 说明 | 是否修改原数组 |
---|---|---|
reverse() | 颠倒数组中元素的顺序,无参数 | 该方法会改变原来的数组,并返回新数组 |
sort() | 对数组的元素进行排序 | 该方法会改变原来的数组,并返回新数组 |
//举例: var arr = [1,2,3]; arr.reverse(); console.log(arr); //输出结果是:[3,2,1] var arr = [1,2,4,5,3]; arr.sort(); console.log(arr); //输出结果是[1,2,3,4,5]
其中,sort()比较特殊,对个位数能正确排序,但对两位数以上就会出现问题,解决办法如下:
var arr = [12,22,32,56,44,2] //升序排序: arr.sort(function(a,b){ return a - b; }) //降序排序: arr.sort(function(a,b){ return b - a; })
- 数组索引方法(不会改变原来数组):
方法名 | 说明 | 返回值 |
---|---|---|
indexOf(‘要查找的字符’,开始的位置) | 数组中查找给定元素的第一个索引 | 如果存在返回索引号,如果不存在,则返回-1 |
lastIndexOf(‘要查找的字符’,开始的位置) | 在数组中的最后一个的索引 | 如果存在返回索引号,如果不存在,则返回-1 |
- 数组转换为字符串(不会改变原来数组):
方法名 | 说明 | 返回值 |
---|---|---|
toString() | 把数组转换成字符串,逗号分隔每一项 | 返回一个字符串 |
join(‘分隔符’) | 把数组中的所有元素转换为一个字符串(默认以逗号分隔) | 返回一个字符串 |
//toString(): var arr = [1,2,3]; console.log(arr.toString()); //字符串:1,2,3 //join('分隔符'): var arr1 = ['red','green','blue']; console.log(arr1.join()); //字符串:red,green,blue console.log(arr1.join('&')); //字符串:red&green&blue
- 其他方法:
方法名 | 说明 | 返回值 |
---|---|---|
concat() | 连接两个或多个数组,不影响原数组 | 返回一个新的数组 |
slice() | 数组截取slice(begin,end),不影响原数组 | 返回被截取项目的新数组 |
splice() | 数组删除splice(第几个开始,要删除个数),会影响原数组 | 返回被删除项目的新数组 |
splice具体解析:
(1)slice(begin,end): begin参数是必须的,规定从何处开始选取。如果是负数,那么规定它从数组尾部开始算起。也就是说,-1表示从最后一个元素开始选取,-2表示从倒数第二个元素开始选取。而end参数是可选的,规定从何处结束选取,该参数一样可以为负数。
(2)一个数组对象经过slice(begin,end)操作后,会返回一个新的数组,返回从begin(包含)到end(不包含)之间的所有元素内容。
var arr1 = ["a","b","c"]; console.log(arr1.slice(1,2)); //b console.log(arr1.slice(1,3)); //b,c console.log(arr1.slice(0,2)); //a,b
splice具体解析:
(1)splice(第几个开始,要删除个数,[item1,item2…itemn]):从数组中添加/删除项目,然后返回被删除的项目,括号内有3个参数部分。
(2)第几个开始是必须的。规定添加/删除项目的位置,使用负数则从尾部规定位置。
要删除个数也是必须的。规定要删除项目的数量,为0则不删除。
item1,item2,itm3,…itemn参数是可选的,表示向数组中添加新项目(替换部分)。
var arr1 = ["a","b","c","d","e"]; //从数组索引位置为1处开始删除,删除1个元素,并返回删除的该元素,输出“b” console.log(arr1.splice(1,1)); //经上一步操作后,被操作数组对象的长度会发生变化(减1),输出4 console.log(arr1.length); //此时被操作数组中还有4个元素,为["a","c","d","e"] //从数组索引位置为0处开始删除,删除2个元素,并返回删除的元素部分,输出“a,c” console.log(array3.splice(0,2)); //此时被操作数组中还有2个元素,为["d","e"] //从数组索引位置为1处开始删除,删除2个元素,并返回该删除的元素部分,输出“e” //注意:可以删除2个元素,但删除1个元素后已经到达数组的末尾,不再进行删除。这里第二个参数在效果上其实等同于指定为1。 console.log(array3.splice(1,2)); var arr2=["1","2","3","4","5"]; //从数组索引位置为1处开始删除,删除2个元素,返回该删除的元素部分,输出“2,3”, // 并将替换部分(第三个参数部分)代入到被删除的部分,即数组中["2","3"]的部分变成了["7","8"] console.log(arr2.splice(1,2,"7","8"));//第三个参数部分为(item1,item2,...,itemn) //所以此处数组长度依然是5 console.log(arr2.length); //输出内容为“1,7,8,4,5” console.log(arr2);
字符串对象
- 基本包装类型:把简单数据类型包装成复杂数据类型,使基本数据类型也有属性和方法。
- JavaScript中可以实现基本包转类型的简单数据类型有String、Numbe、Boolean。
var str = 'andy'; console.log(str,length); //4 //实现简单数据类型str也有length属性的原因是基本包装类型,具体步骤如下: //生成临时变量,把简单类型包转为复杂数据类型 var temp = new String('andy'); //赋值给我们声明的字符变量 str = temp; //销毁临时变量 temp = null;
- 字符串的不可变:指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
var str = 'abc'; str = 'hrllo'; //当重新给str赋值当时候,常量'abc'不会被修改,依然在内存中 //重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变 //由于字符串的不可变,在大量拼接字符串的时候就会有效率问题,应尽量减少字符串拼接
-
因为字符串的不可变,所以字符串的所有方法,都不会修改字符串本身,操作完成后会返回一个新的字符串。
-
根据字符返回位置的方法:
方法名 | 说明 |
---|---|
indexOf(‘要查找的字符’,开始的位置) | 返回指定内容在原字符串中的位置,如果找不到就返回-1 |
lastIndexOf(‘要查找的字符’,开始的位置) | 从后往前找,只找第一个匹配的 |
- 根据位置返回字符:
方法名 | 说明 | 使用 |
---|---|---|
charAt(index) | 返回指定位置的字符(index:字符串的索引号) | str.charAt(0) |
charCodeAt(index) | 获取指定位置处字符的ASCII码(index:字符串的索引号) | str.charCodeAt(0) |
str[index] | 获取指定位置处字符 | HTML5,IE8+支持,和charAt()等效 |
- 替换字符:
//替换字符的语法格式如下: replace('被替换的字符','替换为的字符'); //它只会替换第一个字符 var str1 = 'andyandy'; console.log(str1.replace('a','b')) //输出结果为:bndyandy
- 字符串转换为数组:
//字符串转换为数组的语法格式如下: split('分隔符'); var str1 = 'red,green,blue'; console.log(str1.split(',')); //输出结果:['red','green','blue'] var str2 = 'red&green&blue'; console.log(str2.split('&')); //输出结果:['red','green','blue']
- 转换大小写:
//转换为大写的语法格式如下: toUpperCase(); //转换为小写的语法格式如下: toLowerCase(); var str = 'Hello'; console.log(str.toUpperCase()); //输出结果:HELLO console.log(str.toLowerCase()); //输出结果:hello
- 其他方法:
方法名 | 说明 |
---|---|
concat(str1,str2,str3…) | concat()方法用于连接两个或多个字符串。拼接字符串等效于+,但+更常用 |
substr(start,length) | 从start位置开始(索引号),length取的个数 |
slice(start,end) | 从start位置开始,截取到end位置,end取不到(start和end都是索引号) |
substring(start,end) | 从start位置开始,截取到end位置,end取不到,基本和slice相同,但是不接受负值 |
微信公众号也会定期更新,觉得文章写得还可以的,可以加个关注!点个赞!谢谢!
- JavaScript的数组、字符串、Math对象、日期对象的介绍
- JS内置对象-String对象、Date日期对象、Array数组对象、Math对象
- javascript将一对象(包括数组、JSON、function)转换成字符串
- JavaScript的内置对象(Date日期+string字符串)基础语法总结
- 第一百零八节,JavaScript,内置对象,Global对象字符串编码解码,Math对象数学公式
- JavaScript中扩展字符串与Date对象之间的转换,支持大多数日期格式的字符串(包括中文)
- JavaScript中扩展字符串与Date对象之间的转换,支持大多数日期格式的字符串(包括中文)
- JavaScript之基础-9 JavaScript String(内置对象、String概述、字符串常用操作、模式匹配)
- JavaScript中扩展字符串与Date对象之间的转换,支持大多数日期格式的字符串(包括中文)
- javascript内置对象数组Array和字符串string的一些方法
- JavaScript高级—包括:构造函数和原型(原型对象prototype和对象原型__proto__)、继承(call()、继承父类的属性和方法)、ES5新增的方法(数组方法、字符串方法、对象方法)
- 从零开始学_JavaScript_系列(15)——js系列<4>(数值、字符串、对象、数组、函数、日期的基本方法)
- JS内置对象-String对象、Date日期对象、Array数组对象、Math对象
- JavaScript 数组去重(元素包括数字、字符串、数组和对象)
- Javascript进阶篇——( JavaScript内置对象---下)--Array数组对象---笔记整理
- javascript 回顾(五)日期数组对象api
- JavaScript内置对象——Math对象
- JavaScript对象概述之常用内置对象
- javascript日期字符串转换为Date对象
- JSON是一种数据交换格式(JSON对象/JSON字符串/JSON数字/JSON数组等) -------- JSON对象是JS引擎的内置对象