js 常用类和方法

包装类

在JS中为我们提供了三个包装类:
String() Boolean() Number()
这三个也是 构造函数

通过这三个包装类可以创建基本数据类型的对象
例子:

var num = new Number(2);  
var str = new String("hello");  
var bool = new Boolean(false);

console.log(2 == num);	// false
console.log(false === bool);	// false

但是在实际应用中千万不要这么干。

当我们去操作一个基本数据类型的属性和方法时,
解析器会临时将其转换为对应的包装类,然后再去操作属性和方法,
操作完成以后再将这个临时对象进行销毁。

var s = 123;
s = s.toString();
// 这里是解析器将 s 通过包装类转换为了对象,再调用方法,完了再转回来

所以包装类是浏览器底层自己用的,临时将基本数据类型转换为相应的对象
例如 string 数据类型就可以调用 String对象的方法

Date

日期的对象,在JS中通过Date对象来表示一个时间
它是一个构造函数,可以创建对象

// 创建一个当前时间的对象  
var d = new Date();
// 创建一个指定的时间对象  
var d = new Date("月/日/年 时:分:秒");  

方法:

方法名 描述
.getDate() 当前日期对象的几号(1-31)
.getDay() 返回当前日期对象的周几(0-6)
0 周日
1 周一 ...
.getMonth() 返回当前日期对象的月份(0-11)
0 一月
1 二月 ...
.getFullYear() 从 Date 对象以四位数字返回年份。
.getHours() 返回 Date 对象的小时 (0 ~ 23)。
.getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
.getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
.getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
.getTime() 返回当前日期对象的时间戳
时间戳,指的是从1970年月1日 0时0分0秒,到现在时间的毫秒数
计算机底层保存时间都是以时间戳的形式保存的。
Date.now() 可以获取当前代码执行时的时间戳

Math

Math属于一个工具类,它和Date不一样,他不是构造函数
所以它不需要我们创建对象,它里边封装了属性运算相关的常量和方法
我们可以直接使用它来进行数学运算相关的操作

属性:

属性名 描述
Math.PI 常量,圆周率(约等于3.1415926)
Math.E 算术常量 e,即自然对数的底数(约等于2.718)
Math.SQRT2 2 的平方根(约等于 1.414)
Math.LN2 2 的自然对数(约等于0.693)
Math.LN10 10 的自然对数(约等于2.302)

方法:

方法名 描述
Math.abs() 绝对值运算
Math.ceil() 向上取整
Math.floor() 向下取整
也可以用 parseInt(),这个主要用于字符串
而floor 只能用于数值,无法识别字符串的
Math.round() 四舍五入取整
Math.random() 生成一个[0, 1)之间的随机数
Math.floor(Math.random()*(y+1-x)+x);
数组:Math.floor(Math.random()*arr.length);
生成一个x~y之间的随机数
Math.pow(x,y) 求 x 的 y 次幂
Math.sqrt() 对一个数进行开方
Math.max() 求多个数中最大值
Math.min() 求多个数中的最小值

字符串的相关的方法

使用ES6中的字符串新方法

String.prototype.padStart(maxLength, fillString='')String.prototype.padEnd(maxLength, fillString='')来填充字符串;

属性

属性名 描述
length 获取字符串的长度

方法

方法名 描述
charAt() 根据索引获取指定的字符
同 str[]
charCodeAt() 根据索引获取指定的字符编码
String.fromCharCode() 根据字符编码获取字符,如果是16进制要加 0x
String.fromCharCode(0x41) // A (65)
concat() 和数组一样,可以连接多个字符串和字符,和 + 一样
indexOf() 检索字符串中是否有该内容
有则返回第一次出现的 索引下标,没有则返回 -1
可以设置第二参数,为从指定 索引下标,开始向后查找
lastIndexOf() 和 indexOf() 一样,不过是从后往前找
也可以指定第二参数,从指定位置开始向前查找
slice(start,[end]) 和数组用法一样,截取指定的内容,并将截取到内容返回,不会影响原变量
第一个:截取开始的位置(包括开始)
第二个:截取结束的位置(不包括结束)
可以省略第二个参数,如果省略则一直截取到最后
可以传负数,如果是负数则从后往前数
substr() 和slice()基本一致,不同的是它第二个参数不是索引,而是截取的个数
substring() 和slice()基本一致,不同的是它不能接受负值作为参数,如果设置一个负值,则会自动修正为 0
substring()中如果第二个参数小于第一个,自动调整位置
split() 制定一个字符串作为参数,把字符串分割为字符串数组
如果传一个空串 xx.split(""),则将每一个字符拆分为一个元素,注意:不能加空格啊,不能是 " "
如果指定了一个原字符串没有的字符串,则将整个字符串作为一个元素
可以传递正则表达式,例如:xx.split(/[A-z]/)
不影响原字符串
toLowerCase() 将字符串转换为 小写 并返回
不影响原字符串
toUpperCase() 将字符串转换为 大写 并返回
sub() 把字符显示为 下标
不影响原字符串
sup() 把字符显示为 上标
trim() 去除字符串两边的空白
不影响原字符串

支持正则表达的String方法

方法名 描述
split() 可以接收一个正则表达式,此时会根据正则表达式去拆分成数组
这个方法即是不设置全局匹配 g ,也会全部匹配拆分
search() 和indexOf() 相似,返回第一次出现的下标,但不能设置第二参数
search() 支持正则表达式,但只会查找第一个,即使设置全局匹配也没用
match() 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
默认情况下match() 只会找到第一个符合要求的内容,找到以后就停止检索
可以设置正则表达式为全局匹配模式 xx.match(/[a-z]/gi);,就会匹配到所有的内容
match() 会将匹配到的内容封装到一个数组中返回
replace() 可以将字符串中指定内容替换为新的内容
参数1:被替换的内容,可传一个正则表达式作为参数
参数2:新的内容,若是空串 "",则为删除
默认只会替换第一个,如果是正则,则可以添加匹配模式 g 来全局匹配
不影响原字符串
原文地址:https://www.cnblogs.com/Liwker/p/14372403.html