为什么数组等于其对应的字符串?

问题描述 投票:1回答:3

为什么将数组与对应的字符串进行比较后,其结果为true?

var a = [1,2,3];
var b = '1,2,3';

console.log(a==b);// true

Variable a存储分配给它的数组的内存地址。然后,内存地址如何等于该数组的相应字符串。

javascript arrays reference equality
3个回答
0
投票

如果为“ ==”,则将数组转换为toString,然后进行比较,因此它等于true。所以这是怎么回事:

  var a = [1,2,3];
  var b = '1,2,3';

  a == b //is same as
  a.toString() === b //true

如果要在严格模式下评估为true,则必须执行以下操作:

var a = [1,2,3];
var b = '1,2,3';

a = a.join(',')

console.log(b === a);

0
投票

==比较两个变量,而与数据类型无关,而===在严格检查中比较两个变量,这意味着它还会检查数据类型,然后返回true或false。

'=='运算符测试抽象相等性,即在进行相等性比较之前,它进行了必要的类型转换。

但是'==='运算符会测试严格相等性,即它不会进行类型转换,因此,如果两个值不是同一类型,则在比较时它将返回false。


0
投票

在JS中,您有两个比较运算符:

  • ==-等于

  • === —等于值和等于类型

var a = [1, 2, 3];
var b = '1, 2, 3';

console.log(a == b);  // Outputs true
console.log(a === b);  //Outputs false
© www.soinside.com 2019 - 2024. All rights reserved.