【JavaScript】JS的内置对象中常用方法
【JavaScript】内置对象的常用方法
一、内置对象
- 内置对象:指
javascript
中自带的一些对象
二、Math对象
Math
对象不是一个构造函数,所以不需要new
,直接使用即可
常用方法:
-
Math.PI
,圆周率 -
Math.max()
,最大值 -
Math.min()
,最小值 -
Math.abs()
,绝对值 -
Math.floor()
,向下取整 -
Math.ceil()
,向上取整 -
Math.round()
,四舍五入【注意】
*.5
存在特殊情况,往大的取(坐标轴上,往右边取值)如:Math.round(-1.5); 结果是 -1,而不是 -2
-
Math.random()
,返回一个 [0,1) 浮点数注意掌握返回两个整数之间的任意整数 [min,max]
function myFunction(number1, number2) { return Math.floor(Math.random() * (Math.abs(number1 - number2) + 1)) + Math.min(number1, number2); }
- 先求出两数之间的差值
a
- 再用随机数与
a+1
相乘,可以求出[0,a+1)
之间任意数 - 再用
Math.floor()
向下取整,可以求出[0,a]
之间任意整数 - 最后加上两个数之间的最小数
min
,即可得到[min,max]
之间的任意整数
- 先求出两数之间的差值
三、日期对象
- Date()日期函数是一个构造函数,必须使用
new
来调用
使用方法:
var date = new Date(); //没有参数,返回当前系统的当前时间
var date1 = new Date(2020,10,10); //有时间就返回参数里面的时间
date.getFullYear(); //返回年份
date.getMonth(); //获取当前时间的月份,月份是(0,11)——索引号,所以要注意月份加上 1
date.getDate(); //返回日期
date.getDay(); //返回星期,注意周日返回的是 0
date.getHours(); //返回小时
date.getMinutes(); //返回分钟
date.getSeconds(); //返回秒数
//获得总的毫秒数(时间戳),距离1970年1月1日过了多少毫秒
date.valueOf();
date.getTime();
var date2 = +new Date(); // +new Date() 返回的就是总毫秒数,注意 +
var date3 = +new Date("2020.10.10"); //加上参数,则返回参数里面指定时间所对应的总毫秒数
//问题:这个参数里面的时间格式应该怎么输入
Date.now(); //H5新增获得总毫秒数
//时间戳运用:倒计时
function countdown(time) {
var date1 = +new Date();
var date2 = +new Date(time);
var date = date2 - date1;
var day = Math.floor(date / 1000 / 60 / 60 / 24);
var hours = Math.floor(date / 1000 / 60 / 60 % 24);
var minutes = Math.floor(date / 1000 / 60 % 60);
var seconds = parseInt(date / 1000 % 60);
console.log(day + "天" + hours + "小时" + minutes + "分" + seconds + "秒");
}
- 用指定时间减去当前时间(总毫秒数)
- 分别求出日,时,分,秒的数字
- 用
Math.floor()
或者parseInt()
取整
四、数组对象
01. 检测是否是数组的方法
-
instanceof
var arr = []; var obj = {}; console.log(arr instanceof Array); //TRUE console.log(obj instanceof Array); //FALSE
-
Array.isArray(array)
H5新增的方法,IE9以上支持
console.log(Array.isArray(arr)); console.log(Array.isArray(obj));
【注意】typeof
获取的是数据类型,数据类型包括:number
、string
、boolean
、undefined
、null
、Object
02. 添加和删除数组元素的方法?
push()
- 在数组末尾添加一个或者多个数组元素
push()
中的参数直接写数组元素- 返回的是新数组的长度
pop()
- 删除数组的最后一个元素,一次只能删除一个元素
pop()
没有参数- 返回的被删除的元素
unshift()
- 给数组前面追加新的元素
unshift()
中的参数直接写数组元素- 返回新数组的长度
shift()
- 删除数组的第一个元素,一次只能删除一个元素
shift()
没有参数- 返回被删除的元素
03. 如何对数组进行排序?
-
翻转数组
arr.reverse()
-
冒泡排序
arr.sort(); //只适用于个位数 arr1 = [8,5,9,1]; arr1.sort(); //[1,5,8,9] arr2 = [8,12,5,9,1]; arr2.sort(); //[1,12,5,8,9] arr.sort(function(a,b){ return a - b; //升序排列 //return b - a; //降序排列 });
04. 如何对数组进行索引?
-
返回指定元素的索引号
indexOf(element); //从前往后查找
- 只返回找到的第一个元素的索引号
- 没有对应元素,则返回
-1
lastIndexOf(element); //从后往前查找
-
应用:去重
05. 数组怎样转为字符串?
-
toString()
arr.toString()
-
join
(分隔符)arr = [1,2,3,4,5]; arr.join(); //转为字符串,没有分隔符 1,2,3,4,5 arr.join("-"); //用"-"将数组元素进行连接,并转为字符串 1-2-3-4-5
五、字符串对象
01. 什么是基本包装类型?
- 正常来说,只有 对象(复杂数据类型) 才有属性和方法,基本数据类型是不含有属性和方法的
- 基本包装类型: 就是把简单数据类型【包装】为复杂数据类型
- 这样,基本数据类型就可以使用复杂数据类型的一些 属性和方法
var str = "HELLO"; // 声明了一个字符串类型的变量
console.log(str.length);
// (1) 把简单数据类型包装为复杂数据类型,先有一个临时变量
var temp = new String("HELLO");
// (2) 把临时变量的值 给 str
str = temp;
// (3) 销毁这个临时变量
temp = null;
02. 字符串的不可变性是什么?
var str = "hello";
str = "world";
// "hello"仍然存在内存中,只是 str 不再指向它了,而是指向内存中另一个值 "world"
- 字符串在重新赋值后,实际是在内存中重开了一个新的空间,用来存放新的值,原来的值仍然存在内存中,值没有变,只是地址改变了
- 因为字符串的不可变性,所以不要大量的拼接字符串,会造成内存加大
- 字符串的所有方法,都不会修改字符串本身(字符串的不可变性),在操作完成会返回一个新的字符串
03. 如何查找指定的字符?
indexOf()
和lastIndexOf()
,返回的是字符所在的索引号
str.indexOf("要查找的字符",开始的位置);
str.indexOf("l",2); //从索引号是 2 的位置开始往后查找字符 “l”
-
运用:查找字符串中某个字符出现的次数
function count(str) { var obj = {}; for (var i = 0; i < str.length; i++) { if (obj[str.charAt(i)] == undefined) { obj[str.charAt(i)] = 1; } else { obj[str.charAt(i)]++; } } return obj; } var obj = count(str); for (var k in obj) { console.log(k + ":" + obj[k]); }
- 创建一个对象用于存储字符及数量
- 遍历字符串中的字符
- 调用对象属性,以添加字符到属性,并对属性值做计算
- 返回对象并遍历对象输出
04. 怎么获取字符的位置?
-
获取指定位置的字符
charAt(index)
:返回对应索引号(index)所在位置的字符str[index]
:H5新增方法
-
获取指定位置处字符的ASCII码
charCodeAt(index)
:返回对应索引号所在位置的字符的ASCII码
05. 字符串怎么进行操作?
concat
:拼接字符串
语法结构:concat(‘字符串1’,‘字符串2’, …);
var str = 'hello';
console.log(str.concat('world')); //helloworld
substr
:截取字符串
语法结构:substr(‘截取的起始位置’, ‘截取几个字符’);
如果截取的字符超过剩余字符,则只截取剩余字符
如果只有一个数字,则为索引号,并截取剩余字符
如果没有数字,则全部截取,即为字符串本身
var str1 = 'Hello World';
console.log(str1.substr(2, 2));
// 从索引号 2 开始,截取 2 个字符,
replace
:替换字符
语法结构:replace(‘被替换的字符’, ‘替换的字符’);
var str = 'hello World';
console.log(str.replace('h', 'H')); //替换 h 为 H
split
:分割字符串
语法结构:split(‘分隔符’);
var str2 = 'H,e,l,l,o, ,W,o,r,l,d';
console.log(str2.split(',')); //按照字符串中的“ , ”为分隔符,将字符串里的字符分割为数组进行存储