Javascript原语

时间:2017-09-18 23:55:31

标签: javascript string javascript-objects primitive

我还是JS的新手,目前正在学习对象,对原语有点困惑。在W3schools上,javascript原语被定义为:

"原始值是无属性或方法的值。

原始数据类型是具有原始值的数据。

JavaScript定义了5种原始数据类型:

的字符串

布尔

未定义"

per:W3Schools

但是字符串不是一个对象,并且有一些方法,比如string.prototype.indexOf()和string.prototype.toUpperCase()那些被认为是方法对吗?我错过了什么?

3 个答案:

答案 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构造函数的实例。