js基本包装类型及Math对象(八)
一、基本包装类型【继承于Object类型】
1、Number()、String()、Boolean()引用数据类型【包装类型】分别对应的基本数据类型为number、string、boolean。
2、当使用基本数据类型调用对应基本包装类型的方法时:后台会创建一个对应的基本包装类型对象来调用相关的方法。
相应的过程如下:
a.创建相应基本包装类型的一个实例对象【装箱】
b.在实例对象上调用相应的方法
c.使用完成后,销毁这个实例对象【拆箱】
eg:
var str = "abcefg"; str.substring(2); //此处创建了一个String实例来调用subString()方法
3、使用Object构造函数创建对象时,会依据其构造函数携带的参数类型来返回相应的基本包装类型
eg:
var obj = new Object('nzc'); //携带参数为字符串则其构建的是一个String类型的实例 console.log(obj instanceof String); //true console.log(obj instanceof Object); //true
二、基本包装类型的相应的属性及方法
1、Boolean,Number,String不建议直接使用其包装器类型,他们会增加代码的复杂性并降低执行速度。
2、String 基本包装类型的属性及方法:
length 字符串的字符数量【字符串的长度】
charAt(index) 返回给定字符串索引位置的字符【返回指定字符】
charCodeAt(index) 返回给定字符串索引位置的字符ASCII编码【返回指定字符ASCII码】
eg:
var s = "helloWorld!!!"; s.charAt(1); //e s.charCodeAt(1); //101
indexOf(需要查找的字符,[开始查找的位置]);【返回索引或-1】
从前往后查找指定字符首次出现的位置。
lastIndexOf(需要查找的字符,[开始查找的位置]);【返回索引或-1】
从后往前查找字符串首次出现的位置。
search(需要匹配的字串) 【返回索引或-1】
方法搜索特定值的字符串,并返回匹配的位置:
indexOf() 与 search()区别在于:
search() 方法无法设置第二个开始查找位置的参数。
indexOf() 方法无法设置更强大的搜索值(使用正则表达式作为参数来查找)。
concat() 【不改变原字串】
将一个或多个字符串拼接起来,返回拼接得到的新字符串,但是大多使用"+"拼接【字符串的级联】
eg:
var str = 'hello'; str.concat('world'); //'helloworld' str.concat('123','world'); //'hello123world'
截取字符串【不改变原字串】
slice(开始位置,[结束位置]) 【返回被截取的字串,两个参数均可正可负】
参数为负数时,其结果与【负数参数+字串长度=正数数值】该结果正值数值是一样的
一个参数:返回截取开始位置到字符串结束的字串
两个参数:返回截取的开始位置到结束位置之间的字串,不包括结束位置字符
substr(开始位置,[结束位置]) 【其类似于slice()方法,不同之处在于它的参数不能为负值】
substring(开始位置,截取的字串长度)【返回被截取的字串,第一个参数可正可负】
一个参数:返回截取开始位置到字符串结束的字串
两个参数:返回截取的开始位置开始算的相应长度的字串
eg:
var s = "helloworld"; s.slice(3,7); //lowo s.substr(3,7); //loworld s.substring(3,7);//lowo
trim(); :删除前置以及后置中的所有空格,返回结果【改变原字串】
如果需要删除字串字串全部的空格可以使用:
str.split(" ").join(""); //现将字符串以空格分割组成数组后再对其进行字符串拼接
replace() 【用以执行检索和替换操作,改变原字串】
str.replace(正则表达式,要替换的字符串);
eg:
"helloWorld HEllo".replace(/hello/gi,“JavaScript”); //"JavaScriptWorld JavaScript"
toLowerCase() :转换为小写
toUpperCase() :转换为大写
三、Math对象
比较方法
Math.min() //求一组数中的最小值
Math.max() //求一组数中的最大值
将小数值舍入为整数的几个方法
Math.ceil() 向上舍入【向大值取整】
Math.floor() 向下舍入【向小值取整】
Math.round() 四舍五入
eg:
Math.ceil(9.9); //10
Math.ceil(-9.9);//-9
Math.floor(9.9); //9
Math.floor(-9.9); //-10
Math.round(6.3); //6
Math.round(6.5); //7
随机数
Math.random() //返回 [0,1) 之间的一个随机数
常用的一些方法
sqrt(x) x的开平方根
pow(x,y) x的y次方
abs(x) x的绝对值
exp(x) e的x次方 e = 2.7182818284590