来看 JavaScript 中三种生成字符串的情况:
let s1 = '123'
let s2 = String('456');
let s3 = new String('789');
JavaScript 中提供了两种类型:
- 原始类型:boolean, number , undefined, string, bigint, Symbol.
- 引用类型:Object, WeakSet, WeakMap, Set, Map.
- null
下面一一来看:
- 原始类型,其特性为自身值不可被改变。它们可以使用
typeof
来检查:typeof true
的结果为boolean
typeof 1
的结果为number
.typeof undefined
的结果为undefined
typeof '1'
的结果为string
typeof 123n
的结果为bigint
- 引用类型:
typeof
不起作用,因为所有从Object
派生处的结构类的类型均为Object
, 例如:typeof (new Set())
的结果为object
还有 function 类型也可以使用
typeof
来查看。
let s1 = '123' // s1 为原始类型创建的,它的类型为 string.
let s2 = String('456') // 将 String 看作函数,将 '456' 转化为字符串类型,其类型为 string.
let s3 = new String('789'); // s3 为引用类型:字符串对象,类型为 object。
从 let s2 = String('456')
可以看到,String
函数 的作用可以将外在值转化为字符串,那么,就可以将其转化为字符串:
[1,2,3].map(String);
// 其返回值为 ['1','2','3']
不同于 '123'
vs new String('456')
, 左侧两者生成的是 string 类型和 object 类型;
而 []
和 new Array()
生成的类型均为 object.