Open Sogrey opened 4 years ago
我们现在复习一下JS的数据类型,JS数据类型被分为两大类,基本类型和引用类型。
基本类型:Undefined,Null,Boolean,Number,String,Symbol,BigInt
Undefined
Null
Boolean
Number
String
Symbol
BigInt
引用类型:Object,Array,Date,RegExp等,说白了就是对象。
Object
Array
Date
RegExp
其中引用类型有方法和属性,但是基本类型是没有的,但我们经常会看到下面的代码:
let name = "marko"; console.log(typeof name); // "string" console.log(name.toUpperCase()); // "MARKO"
name类型是 string,属于基本类型,所以它没有属性和方法,但是在这个例子中,我们调用了一个toUpperCase()方法,它不会抛出错误,还返回了对象的变量值。
name
string
toUpperCase()
原因是基本类型的值被临时转换或强制转换为对象,因此name变量的行为类似于对象。除null和undefined之外的每个基本类型都有自己包装对象。也就是:String,Number,Boolean,Symbol和BigInt。在这种情况下,name.toUpperCase()在幕后看起来如下:
null
undefined
name.toUpperCase()
console.log(new String(name).toUpperCase()); // "MARKO"
在完成访问属性或调用方法之后,新创建的对象将立即被丢弃。
我们现在复习一下JS的数据类型,JS数据类型被分为两大类,基本类型和引用类型。
基本类型:
Undefined
,Null
,Boolean
,Number
,String
,Symbol
,BigInt
引用类型:
Object
,Array
,Date
,RegExp
等,说白了就是对象。其中引用类型有方法和属性,但是基本类型是没有的,但我们经常会看到下面的代码:
name
类型是string
,属于基本类型,所以它没有属性和方法,但是在这个例子中,我们调用了一个toUpperCase()
方法,它不会抛出错误,还返回了对象的变量值。原因是基本类型的值被临时转换或强制转换为对象,因此
name
变量的行为类似于对象。除null
和undefined
之外的每个基本类型都有自己包装对象。也就是:String
,Number
,Boolean
,Symbol
和BigInt
。在这种情况下,name.toUpperCase()
在幕后看起来如下:在完成访问属性或调用方法之后,新创建的对象将立即被丢弃。