javascript include方法输出不正确的结果

时间:2018-09-25 00:04:18

标签: javascript

<!DOCTYPE HTML>
<html>

<body>

  <p>Before the script...</p>

  <script>
    alert([[25,4]].includes([25,4]));
  </script>

  <p>...After the script.</p>

</body>

</html>

当我运行上面的代码时,它输出“ false”,这是不正确的。如果将[[25,4]]。includes([25,4])更改为['a']。includes('a'),则会输出正确的答案“ true”。为什么这样做呢?

1 个答案:

答案 0 :(得分:1)

这是因为 WorksID GWZone LabResultsID pH WorksID ph_range avg_pH --- --------- -------- -------------- ---- --------- ---------------- -------- 1 1 Zone1 1 7 1 >=6.5 and <8.5 7 2 2 Zone2 2 7 2 >=6.5 and <8.5 7.5 3 4 Zone3 4 7 4 >=6.5 and <8.5 7.5 4 3 Zone2 3 8 3 >=6.5 and <8.5 7.5 5 5 Zone3 5 8 5 >=6.5 and <8.5 7.5 6 6 Zone3 6 9 6 >=8.5 9.5 7 7 Zone3 7 10 7 >=8.5 9.5 作为两个操作数引用了2个不同的数组对象。 JavaScript不认为2个不同的对象相等。 [25,4] !== [25,4]返回['a'].includes('a'),因为true是一个字符串(原始值)。如果将'a'转换为'a'对象,则String方法应返回.includes。 (选中What is the difference between JavaScript object and primitive types?

false

如果将代码更改为以下内容,则'a' === 'a' // true new String('a') === new String('a') // false [new String('a')].includes(new String('a')) // false 方法应返回.includes

true