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