JavaScript--基本包装类型+Math对象
1. 基本包装类型
1)为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类Boolean, Number, String
每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型对象,从而可以使我们调用一些方法操作这些数据。
var s = "matty";
s.substring(2);
后台会自动完成以下操作:
a.创建String类型的一个实例
b.在实例上调用指定的方法
c.销毁这个实例
2)基本包装类型的实例调用typeof返回"object",从而所有基本包装类型对象都会被转换为布尔类型的true.
Object构造函数会像工厂方法一些,根据传入的值的类型返回相应基本包装类型的实例
var obj = new Object("briup"); //obj 类型为String包装类型
console.log(obj instanceof String);
使用new调用基本包装类型的构造函数,与直接调用同名的转换函数不一样
var s = "11";
var s1 = Number(s); //转型函数 number类型
var s2 = new Number(s); //构造函数 object类型
3) Boolean,Number,不建议直接使用这两种类型
4) String
1.常见函数和属性
length
属性,获取字符串的字符数量
charAt(i)
返回给定位置的字符
charCodeAt()
返回给定位置的字符的字符编码
var s = "helloworld";
s.charAt(1); //e
s.charCodeAt(1); //101
concat()
将一个或多个字符串拼接起来,返回拼接得到的新字符串,但是大多使用"+"拼接
slice()
(开始位置,返回字符后一个字符位置)
substr()
(开始位置,返回字符个数)
substring()
(开始位置,返回字符后一个字符位置)
var s = "helloworld";
s.slice(3,7); //lowo
s.substr(3,7); //loworld
s.substring(3,7);//lowo
s //helloworld 不改变原值大小
indexOf();
从前往后查找指定字符所在位置,返回找到符合字符的第一个位置,找不到,则返回-1
lastIndexOf();
从后往前查找字符串所在位置,可以有第二个参数,代表从字符串中哪个位置开始查找。
var str = "hellowroldtoday";
console.log(str.indexOf("j")); //4
console.log(str.lastIndexOf("o")); //11
trim();
删除前置以及后置中的所有空格,返回结果
var s = " hello world ";
console.log("|"+s.trim()+"|"); //|hello world|
toLowerCase() :转换为小写
toUpperCase() :转换为大写
2.Javascript中String对正则表达式的支持
search()
参数为一个正则表达式。如果参数不为正则表达式,则先通过RegExp将其转换为构造函数。不支持全局检索,返回第一个与之匹配的子串的位置,如果找不到匹配的子串,返回-1。
"JavaScript".search(/script/i); //返回4
replace()
用以执行检索和替换操作。第一个参数是正则表达式,第二个参数是要替换的字符串。
text.replace(/javascript/gi,"JavaScript"); //不区分大小写将所有javascript转换为JavaScript
match()
最常用的正则表达式方法,参数为正则表达式。返回由匹配结果组成的数组。
当正则表达式中没有g修饰符的时候,就不是全局匹配。这时,数组的第一个元素就为匹配的字符串,剩余的元素则是由正则表达式中用圆括号括起来的子表达式。如果该正则表达式设置为修饰符g,则该方法返回的数组包含字符串中所有匹配结果。
"1 plus 2 equals 3".match(/\d+/g) //返回["1","2","3"]
var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "visit my blog at http://www.briup.com/~ee";
var result = text.match(url);
if(result!=null){
var fullurl = result[0];
var protocol = result[1];
var host = result[2];
var path = result[3];
}
split() 方法用于分割字符串
参数为字符串或正则表达式 返回一个字符串数组
"1, 2, 3, 4, 5".split(/\s*,\s*/); //["1","2","3","4","5"] 允许分隔符左右两边留有空白
2. Math对象
1)常用方法
1.比较方法
Math.min() 求一组数中的最小值
Math.max() 求一组数中的最大值
Math.min(1,2,19,8,6); //1
2.将小数值舍入为整数的几个方法:
Math.ceil() 向上舍入
Math.floor() 向下舍入
Math.round() 四舍五入
console.log(Math.ceil(12.41)); //13
console.log(Math.floor(12.41)); //12
console.log(Math.round(12.3)); //12
console.log(Math.round(12.5)); //13
3.随机数
Math.random() 返回大于0小于1的一个随机数
2)其他方法:(了解即可,即用即查)
abs(num) 返回num绝对值
exp(num) 返回Math.E的num次幂
log(num) 返回num的自然对数
pow(num,power) 返回num的power次幂
sqrt(num) 返回num的平方根
scos(x) 返回x的反余弦值
asin(x) 返回x的反正弦值
atan(x) 返回x的反正切值
atan2(y,x) 返回y/x的反正切值
cos(x) 返回x的余弦值
sin(x) 返回x的正弦值
tan(x) 返回x的正切值