我还是JS的新手,目前正在学习对象,对原语有点困惑。在W3schools上,javascript原语被定义为:
"原始值是无属性或方法的值。
原始数据类型是具有原始值的数据。
JavaScript定义了5种原始数据类型:
的字符串
号
布尔
空
未定义"
per:W3Schools
但是字符串不是一个对象,并且有一些方法,比如string.prototype.indexOf()和string.prototype.toUpperCase()那些被认为是方法对吗?我错过了什么?
答案 0 :(得分:1)
它实际上是字符串和字符串之间的区别。 string是原始的,但String是object。
var str = "string" //primitive
var str1 = new String("string") //object
将方法应用于String对象类的str时,它会自动转换为对象。
自动装箱是JS将原始数据类型转换为相应的对象包装类的过程。例如,string将转换为String
答案 1 :(得分:1)
这可能是因为JavaScript会自动用对象包装这些原始值。根据{{3}}:
除了null和undefined之外,所有原始值都具有包围原始值的对象等价物:
- 字符串原语的字符串。
- 数字原语的编号。
- 布尔基元的布尔值。
- 符号原语的符号。
答案 2 :(得分:1)
在JavaScript中有5种原始类型:undefined,null,boolean,string和number。其他一切都是一个对象。原始类型boolean,string和number可以由它们的对象对应物包装。这些对象分别是Boolean,String和Number构造函数的实例。