js的数据类型
- 基本数据类型: String、Number、Boolean、Null、Undefined、Symbol、BigInt
- 引用数据类型: Object
基本类型的值是不可改变的,因为它们是原始值。为了解决这个问题,JS提供了包装类,通过这些类,我们可以对其进行数据转换,JS自动将基本数据类型转换为对象,并调用相应的包装类的属性。
- String(): 将基本数据类型字符串,转换为String对象。
- Number(): 将基本数据类型的数字,转换为Number对象。
- Boolean(): 将基本数据类型的布尔值,转换为Boolean对象,布尔值转化为Boolean对象,在if判断的时候,都会作为true判断通过,即使这个对象为false。
构造函数
const a = new Number(123)
const b = new String('abc')
const c = new Boolean(false)
console.log(typeof(a)) // Object
console.log(typeof(b)) // object
console.log(typeof(c)) // object
普通函数
- 常常用于将任意类型的值转为数值、字符串和布尔值。
// 将字符串转化为数值
const num = Number('666') // 666
console.log(num.toFixed(2)) // 666.00
// 将数值转化为字符串
const str = String(123) // '123'
console.log(str.length) // 3
// 将字符串转化为Boolean
const bool = Boolean('abc') // true
console.log(bool.valueOf()) // true
注意
- 虽然包装类可以像对象那样操作,但实际上它们只是对基本数据类型的封装,仍然存在一些差异。例如,使用等于号(==)或严格等于号(===)进行比较时,基本数据类型和包装类会有不同的行为
console.log(6 == new Number(6)); // true,自动将包装类转换为基本数据类型进行比较
console.log(6 === new Number(6)); // false,基本数据类型和包装类不相等