Javascript:String vs. Object

时间:2016-05-11 08:56:40

标签: javascript jquery string object

我已经查看了stackoverflow上的所有问题和答案,但无法找到简单的答案。

字符串和对象之间究竟有什么区别?

例如,如果我有这段代码:

new BitArray(yourArray).CopyTo(intArray, 0);

究竟有什么区别?

我了解var a = 'Tim'; var b = new String('Tim'); 会使代码变得复杂,而new会使代码变慢。

此外,我了解new Stringa==b,但更严格truea===b。为什么呢?

我似乎无法理解对象和字符串创建背后的过程。 例如:

false

var a = new String ('Tim'); var b = new String ('Tim'); a==b

3 个答案:

答案 0 :(得分:6)

a的类型为字符串,而b的类型为object。

===包括类型检查,因此字符串不是对象 a === b将为您提供false

new String ('Tim') === new String ('Tim')也会评估为false,因为两者都是不同的对象

答案 1 :(得分:3)

对于普通字符串,不需要创建对象,只需创建变量并为其赋值。

至于你为什么==是真的问题,===是假的,因为:

==比较值 ===比较值和类型(一个是字符串,一个是对象)。

另一个例子是:

var a = 1;

var b =' 1&#39 ;;

a == b //为真,因为它们都具有相同的值

a === b // false,因为一个是字符串,一个是整数

答案 2 :(得分:1)

您可以执行以下操作来查看差异:

var a = "foo";
var b = new String("foo");
console.log(a);
console.log(b);

enter image description here

第一个是字符串文字,第二个是字符串对象。这就是为什么当你比较它们时它们不相等但是当你比较它们的价值时。您可以阅读有关文字here的更多信息。