0%

33 包装类

  • 基本数据类型
    String Number Boolean Null Undefined
  • 引用数据类型
    Object
  • 包装类是代码运行时提供给底层的,我们用不到
  • 在JS中,为我们提供了三个包装类,通过这三个包装类可以将基本数据类型转换为对象
    • String()
      • 可以将基本数据类型字符串转换为String对象
    • Number()
      • 可以将基本数据类型的数字转换为Number对象
    • Boolean()
      • 可以将基本数据类型的布尔值转换为Boolean对象
    • 注意,我们在实际中基本不会使用基本数据类型的对象
      • 如果使用,可能会产生一些不可预期的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

//基本数据类型对象
var num = new Number(3);
var str = new String("hello");
var str2 = new String("hello");
var bool = new Boolean(true);

var bool2 = true;

//向num中添加一个属性
num.hello = "abcdefg";
console.log(bool == bool2); //输出true,比较时会进行类型转化,bool对象转化为true了
console.log(bool === bool2); //输出false,
console.log(num = num2); //输出false,因为两个对象比较的是地址值
console.log(str == str2); //输出
var b = new Boolean(false);
if(b){
alert("运行了"); //if后面跟的b是一个对象,无论值是什么if都会运行的
}
1
2
3
4
5
6
7
- 方法和属性值能添加给对象,不能添加给基本数据类型
- 当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后再调用对象的属性和方法,调用完以后,在将其转换为基本数据类型
var s = 123;
s = s.toString();
console.log(typeof s); //输出string
s.hello ="你好";
console.log(s.hello); //输出undefined,因为只是暂时将s转换为对象,之后又转换为基本数据类型
-------------本文结束感谢您的阅读-------------