您的位置:首页 > Web前端 > JavaScript

JavaScript——内置对象(包括:内置对象的概述、Math对象、日期对象、数组对象、字符串对象)

2020-06-04 05:58 253 查看

内置对象概述

  • 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相同,但是不接受负值

微信公众号也会定期更新,觉得文章写得还可以的,可以加个关注!点个赞!谢谢!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐