0

我正在阅读有关字符串文字和字符串对象之间的区别。请参阅 JavaScript 中的字符串文字和字符串对象有什么区别?

但我有点困惑,因为它解释说你可以使用字符串对象的方法,但从技术上讲,字符串文字是字符串对象吗?我不是在问我们是否可以使用相同的方法,只有当字符串字面量是一个对象时。谢谢!

4

2 回答 2

3

术语“字符串文字”是指直接在代码中表示字符串值的语法约定。

编码

"Hello Everyone"

是 14 个字符的字符串的字符串文字。

字符串字面量表示的值是字符串原语。它不是一个对象。这就是为什么如果你使用:

typeof "Hello Everyone"

这将返回值"string",而不是"object"

JavaScript 允许对任何字符串原语进行装箱,以在某些情况下将它们提升为字符串对象。尝试对字符串值调用方法就是其中一种情况。所以如果你打电话:

"Hello Everyone".toUpperCase()

由这个字面量表示的值将被装箱到一个字符串 Object 中,并且该方法将在该对象上调用。

于 2015-10-07T15:05:52.627 回答
0

您可以使用运算符检查 Javascript 变量的类型typeoftypeof "Hello World"并且typeof String("Hello World")都返回类型“字符串”。

此外,严格相等检查"Hello" === String("Hello")返回 true,这意味着它们不仅值相等,而且类型相等。

但是,typeof new String("Hello World")返回“对象”。

于 2015-10-07T15:11:03.550 回答