js的标准库
js的标准库
标准库指的是js的标准内置对象,是js这门语言本身初始时提供的在全局范围的对象
数值,字符串,布尔类型,在使用的时候会被对应的原始数据类型包装,组成包装对象
// 静态方法: 只能在原生对象调用,不能通过实例调用。
// 实例方法: 由该构造函数创建的对象,都可以使用的方法。
Number对象
1.Number可以作为构造函数使用
var n = new Number(1);
console.log(n);
/* Number { 1 }
{
[[Prototype]]: Number
[[PrimitiveValue]]: 1
} */
console.log(n+2); //3
2.Number()
可以做为一个普通函数使用,可以把任意数据类型转为数值类型
parseInt是转为整数,Number是转为数值类型,比parseInt更严谨。
var num1 = "12.1";
var num2 = Number(num1);
console.log(num2, typeof (num2)); //12.1 'number'
3.toString()
把number类型转为字符串类型
var num1 = 10;
num1 = num1.toString();
console.log(num1, typeof (num1)); //'10'string
4.toFixed()
将一个数转为指定位数的小数,返回小数对应的字符串
如果多位小数,会按四舍五入方式转,精度会有问题。
var num2 = (10.046).toFixed(2);
console.log(num2, typeof (num2)); //10.05 string
5.自定义方法
在Number对象的原型上定义方法
Number.prototype.add = function (num) {
console.log(this);
return this + num;
}
var num3 = 10;
console.log(num3.add(2)); //Number {10} 12
String对象
包含了堆字符串的操作,所有的字符串的原型都是String
1.String()
也可以作为一个构造函数,返回String对象
var str1 = new String("abc");
console.log(str1); //String {'abc'}
2.fromCharCode(code)
可以返回unicode编码(码点)对应的字符
var str1 = String.fromCharCode(97, 98, 99);
console.log(str1); //abc
3.length 属性
返回字符串的长度
var str1 = "abcdef"; // js运行时是通过String构造函数创建
console.log(str1.length); //6
4.concat()
连接两个字符串,返回一个新的字符串,不会改变原来的字符串。
console.log(str1.concat("123")); //abcdef123
5.字符索引值
字符串使用时会被包装为字符串对象,每个字符都会有一个索引值,从0开始。
console.log(str1[2]); //c
6.slice(startIndex,endIndex)
从指定索引开始截取字符串
会返回新的字符串,不会改变原来的字符串
正数从左往右截取,负数,从右往左。 还有一个substr() 在前面简单数据类型里
var str2 = "abcdefabc";
console.log(str2.slice(2, 5)); // 从左往右 cde
console.log(str2.slice(-4, -1)); // 从右往左 fab
7.substring(startIndex,endIndex)
substr() 和slice一致。
但是不接收负值
console.log(str2.substring(2, 5)); // 从左往右 cde
console.log(str2.substring(-4, -1)); //""
8.indexOf(str)
返回一个字符在字符串中第一次出现的位置(索引)。从左往右
lastIndexOf(str)
返回一个字符在字符串中第最后一次出现的位置(索引)。从右往左
console.log(str2.indexOf("c")) //2
console.log(str2.lastIndexOf("c")); //8
9.trim()
去掉字符串的两端空格
var str3 = " aa ";
console.log(str3.trim()); //aa
10.toLowerCase();
将字符串转为小写
toUpperCase();
将字母转为大写
var str4 = "HelloWorlld";
console.log(str4.toLowerCase(), str4.toUpperCase()); //helloworlld HELLOWORLLD
11.match()
用于匹配字符中是否匹配参数字符串
如果匹配成功立刻返回(不会再往后查询)匹配字符串数组
不成功则返回null *
console.log(str4.match("ll"));
//['ll', index: 2, input: 'HelloWorlld', groups: undefined]
console.log(str4.match("lll")); //null
12.search()
用于匹配字符串中参数字符串的第一次出现的位置,
如果匹配成功 立刻返回(不会再往后查询)匹配字符串索引
如果没有匹配,怎返回-1 *
console.log(str4.search("ll")); //2
console.log(str4.search("lll")); //-1
13.replace(str1,str2)
用str2替换匹配的str1字符串,一般只会匹配一次。 *
不改变原字符串
console.log(str4.replace("ll", "--")); //He--oWorlld
console.log(str4); //HelloWorlld
14.split(str)
按参数字符分割为数组(字符串转数组的方法) *。
如果没有找出参数字符,则把整个字符放到数组里面。
如果是空字符,就把字符串每个字符作为数组的元素。
var str5 = "hi-how-are-you";
var arr1 = str5.split("-");
console.log(arr1); //['hi', 'how', 'are', 'you']
var arr1 = str5.split("#");
console.log(arr1); //['hi-how-are-you']
var str5 = "red-you";
var arr1 = str5.split("");
console.log(arr1); //['r', 'e', 'd', '-', 'y', 'o', 'u']
15.localCompare()
比较两个字符串,返回一个整数
小于0则是第一个字符串小于第二字符串
0则是两个字符串相等
大于0表示第一个字符串更大。
内部采用的是unicode编码的比较。
console.log("ab".localeCompare('ab')); //0
console.log("a".localeCompare('A')); //-1
console.log("A".localeCompare('a')); //1
Math对象
提供了各种数学功能,不是一个构造函数,不能产生实例。
1.Math.abs()
返回绝对值
var num1 = -1;
console.log(Math.abs(num1)); //1
2.max(a,b,c)
返回参数中最大值
min(a,b,c) 返回参数中最小的值
console.log(Math.max(1, 3, 9, 7)); //9
console.log(Math.min(1, 3, 9, 7)); //1
3.floor(num)
返回小于或等于参数值的最大整数(地板值,下舍入)
ceil(num) 返回大于或等于参数值的最小整数(上舍入);
console.log(Math.floor(3.8)); //3
console.log(Math.ceil(3.3)); //4
4.round()
四舍五入
console.log(Math.round(3.5)); //4
5.pow(a,b)
幂运算
console.log(2 ** 3); //8
console.log(Math.pow(2, 3)); //8 2为底数,3为指数的幂运算。
console.log(Math.pow(2)); //NaN
6.sqrt()
平方根
console.log(Math.sqrt(4)); //2
7.random()
返回0-1之间的随机数,可以等于0,但是不等于1。 0 <= X < 1
这个方法里面不跟参数
var num4 = Math.random();
产生1-3的整数
num4 = Math.floor(Math.random() * 3 + 1); // 1-3.999999
封装产生范围内的随机整数方法并且包含这2个整数
function randomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
产生随机的4位验证码的方法
function randomCode() {
let str = "";
for (let i = 0; i < 4; i++) {
str += randomInt(0, 9);
}
return str;
}
console.log(randomCode());
8.PI
圆周率
console.log(Math.PI); //3.141592653589793
Date对象
日期对象,是一个构造函数,获取当前时间作为对象。
日期计算起始时间(零点)是从 1970年1月1日 00:00:00
1.作为普通函数使用
返回当前的时间字符串
console.log(Date()) //Fri Aug 05 2022 14:38:19 GMT+0800 (中国标准时间)
2.作为构造函数使用
返回日期对象
var date1 = new Date(); // 默认调用了实例的toString(),显示出来是一个日期字符
console.log(date1); //Fri Aug 05 2022 14:38:19 GMT+0800 (中国标准时间)
3.获得总的毫秒数
Date.now()
返回当前时间距离零点时间的毫秒数(时间戳) H5新增
console.log(Date.now()); //1659681499853
+new Date();
简单的写法(最常用的写法)
var date1 = +new Date();
console.log(date1); //1659681499853
通过valueOf() getTime( )
var date = new Date();
console.log(date.valueOf()); //1659681499853
console.log(date.getTime()); //1659681499853
4.Date.parse()
解析日期字符串,返回日期离零点直接的毫秒数
console.log(Date.parse('Sun Jul 10 2022 21:45:21 GMT+0800 (中國標準時間)'))//1657460721000
console.log(Date.parse('Sun Jul 10 2022')) //1657382400000
console.log(Date.parse('2022-10-10 23:10:10')) //1665414610000
console.log(Date.parse('xxxxx')) //NaN
5.get方法
获取具体的年月日,时分秒
var date2 = new Date();
console.log(date2.getFullYear()); //获取年 2022
console.log(date2.getMonth() + 1); // 获取月,从0开始计算,需要+1 8
console.log(date2.getDate()); // 获取日期 5
console.log(date2.getDay()); // 周几,星期日为0。 5
console.log(date2.getHours()); // 获取小时 14
console.log(date2.getMinutes()); // 获取分钟 46
console.log(date2.getSeconds()); // 获取秒 44
console.log(date2.getTime()); // 距离零点的毫秒数(时间戳)。 1659682004450
6. set方法
可以设置日期,与get对应。
var date2 = new Date("2022-10-10 23:10:10"); // 可以传入时间戳,日期字符串转为日期对象。
date2.setFullYear("2033");
date2.setDate(12)
console.log(date2); //Wed Oct 12 2033 23:10:10 GMT+0800 (中国标准时间)