再读斋

JavaScript⑥基本包装类型

Boolean

Boolean类型是与布尔值对应的引用类型。要创建 Boolean 对象,可以像下面这样调用 Boolean 构造函数并传入 true 或 false 值。

1
2
3
var obj = new Boolean(true);
console.log(obj.valueOf());
console.log(obj.toString());

Boolean 对象在 ECMAScript 中的用处不大,因为它经 常会造成人们的误解。其中最常见的问题就是在布尔表达式中使用 Boolean 对象。

1
2
3
4
var falseObj = new Boolean(false);
//对象在布尔表达式中表示true
var ret = falseObj && true;
console.log(ret); //true

检测Boolean对象

1
2
console.log(typeof falseObj);
console.log(falseObj instanceof Boolean);

Number

Number 是与数字值对应的引用类型。要创建 Number 对象,可以在调用 Number 构造函数时向其中传递相应的数值。

  • toFixed()方法会按照指定的小数位返回数值的字符串表示
  • toExponential(),该方法返回以指数表示法(也称 e 表示法) 表示的数值的字符串形式。
  • toPrecision()会根据要处理的数值决定到底是调用 toFixed()还是调用 toExponential()。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var num = new Number(10);
console.log(num.toString());
console.log(num.toString(2)); //二进制
console.log(num.toString(8)); //八进制
console.log(num.toString(16)); //16进制
//指定小数位数
console.log(num.toFixed(2)); //10.00
//自动四舍五入
num = 10.004;
console.log(num.toFixed(2)); //10.00
num = 10.005;
console.log(num.toFixed(2)); //10.01
num = 10;
//指数表示法表示的数值的字符串形式
console.log(num.toExponential(2)); //1.00e+1
num = 99;
console.log(num.toPrecision(1)); //1e+2
console.log(num.toPrecision(2)); //99
console.log(num.toPrecision(3)); //99.0
console.log(num.toPrecision(4)); //99.00

String

String 类型是字符串的对象包装类型,可以像下面这样使用 String 构造函数来创建。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var str = new String("Hello world");
console.log(str.valueOf());
console.log(str.toString());
console.log("字符串长度: "+str.length);
console.log("字符方法")
console.log(str.charAt(1));
console.log(str.charCodeAt(1));
console.log(str[1]);
console.log("字符串操作");
//拼接
console.log(str.concat(" welcome"));
//返回子字符串
console.log(str.slice(0,5));
console.log(str.substr(0,5));
/**
substr()的第二个参数是返回的字符个数,
如果没有传递该参数则将字符串的长度作为结束位置
*/
console.log(str.substr(0));
console.log(str.substring(0,5));
console.log("字符串查找");
console.log(str.indexOf("e",0));
console.log(str.lastIndexOf("l"));
//搜索所有字符l的位置
var pos = str.indexOf("l");
var positions = new Array();
while (pos > -1) {
positions.push(pos);
pos = str.indexOf("l", pos + 1);
}
console.log(positions);
//去掉前后空格
str = " Hello World ";
str = str.trim();
console.log(str.trim());
//大小写
console.log(str.toLocaleUpperCase());
console.log(str.toUpperCase());
console.log(str.toLocaleLowerCase());
console.log(str.toLowerCase());
//搜索匹配字符串
console.log(str.match("ll"));
console.log(str.search("ll"));
//替换字符串
console.log(str.replace("ll","rr"));
//分割字符串
str = "green,yellow,blue";
console.log(str.split(","))
//比较字符串
str = "blue";
console.log(str.localeCompare("area")); //1
console.log(str.localeCompare("blue")); //0
console.log(str.localeCompare("cat")); // -1
//fromCharCode()。这个方法的任务是接收一或 多个字符编码,然后将它们转换成一个字符串。
console.log(String.fromCharCode(104, 101, 108, 108, 111)); //hello
刘涤生 wechat