JavaScript Tips: String & ne

2017-04-05  本文已影响14人  云之外

在 JavaScript 中,有三种声明字符串的形式:

var str = "string"
var str2 = String("string")
var str3 = new String("string")

第一种和第二种是相同的。第三种严格意义上讲不算是声明字符串,而是使用 String 生成一个 object

String

可以看一下 MDN 对 String 的定义:https://developer.mozilla.org/cn/docs/Web/JavaScript/Reference/Global_Objects/String

String 全局对象是一个用于字符串或一个字符序列的构造函数。

可以看到,String 的本质是一个函数。String(thing)thing 变成一个字符串并返回。

new String

要想弄明白 new String 到底做了什么工作,就要先明白 JavaScript 的 new 运算符做了哪些事情:

new String 生成了一个完整的 object ,并不是一个字符串。

=== & typeof

明白了以上两点,就很好解释 Stringnew String 的区别了。对于文章开头出现的代码,我们能得到以下的结果。

str === str2 // true
str === str3 // false
typeof str // string
typeof str3 // object
上一篇下一篇

猜你喜欢

热点阅读