【JavaScript】JS的内置对象中常用方法

  • 【JavaScript】内置对象的常用方法
  • 一、内置对象
  • 二、Math对象
  • 常用方法:
  • 三、日期对象
  • 使用方法:
  • 四、数组对象
  • 01. 检测是否是数组的方法
  • 02. 添加和删除数组元素的方法?
  • 03. 如何对数组进行排序?
  • 04. 如何对数组进行索引?
  • 05. 数组怎样转为字符串?
  • 五、字符串对象
  • 01. 什么是基本包装类型?
  • 02. 字符串的不可变性是什么?
  • 03. 如何查找指定的字符?
  • 04. 怎么获取字符的位置?
  • 05. 字符串怎么进行操作?


【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);
}
  1. 先求出两数之间的差值 a
  2. 再用随机数与a+1相乘,可以求出[0,a+1)之间任意数
  3. 再用Math.floor()向下取整,可以求出[0,a]之间任意整数
  4. 最后加上两个数之间的最小数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 + "秒");
}
  1. 用指定时间减去当前时间(总毫秒数)
  2. 分别求出日,时,分,秒的数字
  3. 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获取的是数据类型,数据类型包括:numberstringbooleanundefinednullObject

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]);
}
  1. 创建一个对象用于存储字符及数量
  2. 遍历字符串中的字符
  3. 调用对象属性,以添加字符到属性,并对属性值做计算
  4. 返回对象并遍历对象输出

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(','));			//按照字符串中的“ , ”为分隔符,将字符串里的字符分割为数组进行存储