我正在阅读字符串文字和字符串对象之间的区别。看到JavaScript中字符串字面值和字符串对象的区别是什么?
但我有点困惑因为它解释了你可以使用字符串对象的方法但从技术上讲,字符串字面量是字符串对象吗?我不是在问我们是否可以使用相同的方法,只有当字符串字面量是一个对象时。谢谢!
术语"字符串字面量"是指直接在代码中表示字符串值的语法约定。
的代码"Hello Everyone"
是14个字符字符串的字符串字面值。
字符串字面值表示的值是字符串原语。它不是一个物体。这就是为什么如果你使用:
typeof "Hello Everyone"
将返回值"string"
,而不是"object"
。
JavaScript允许装箱任何字符串原语,以便在某些情况下将它们提升为字符串对象。尝试对字符串值调用方法就是其中一种情况。所以如果你调用:
"Hello Everyone".toUpperCase()
这个字面值表示的值将被装箱成一个字符串对象,并且该方法将在该对象上调用。
您可以使用typeof
操作符检查Javascript变量的类型。typeof "Hello World"
和typeof String("Hello World")
都返回"string"类型。
同样,严格相等检查"Hello" === String("Hello")
返回true,这意味着它们不仅值相等,而且类型相等。
但是,typeof new String("Hello World")
返回"object"。