Почему консоль разработчика дает разные результаты для одного и того же ввода данных? - PullRequest
0 голосов
/ 29 апреля 2020

Почему консоль разработчика дает разные результаты для одного и того же ввода данных? Ниже приведен код, который я проверил в Chrome консоли разработчика. Я озадачен тем, как доставляются различные выходные данные.

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>    // First time
    var a = [1, 2, 3];
    var b = [1, 2, 3];
    var c = "1,2,3";

    a == c; // true
    b == c; // true
    a == b; // false

    //Second time
    console.log(a == c);
    console.log(b == c);
    console.log(a == b);

    a = [1, 2, 3];
    b = [a, 2, 3];
    c = "1, 2, 3";
    console.log(a == c);  //false
    console.log(b == c);  //false
    console.log(a == b); //false

Ответы [ 3 ]

0 голосов
/ 29 апреля 2020

Все значения вашего второго выполнения ложны, потому что ни одно из значений не равно.

var c = "1,2,3" не совпадает с c = "1, 2, 3 "из-за пробелов во второй строке.

var b = [1, 2, 3] отличается от b = [a, 2, 3] из-за различного первого элемента во втором массиве.

Попробуйте приведенный ниже код

// First time
var a = [1, 2, 3];
var b = [1, 2, 3];
var c = "1,2,3";

a == c;
b == c;
a == b;

//Second time
console.log(a == c);
console.log(b == c);
console.log(a == b);

a = [1, 2, 3];
b = [1, 2, 3];
c = "1,2,3";
console.log(a == c);
console.log(b == c);
console.log(a == b);
0 голосов
/ 29 апреля 2020
// First time
var a = [1, 2, 3];
var b = [1, 2, 3];
var c = "1,2,3";

a == c; // true
b == c; // true
a == b; // false

//Second time
console.log(a == c);
console.log(b == c);
console.log(a == b);

a = [1, 2, 3];
b = [a, 2, 3];
c = "1, 2, 3";
console.log(a == c);  //false
console.log(b == c);  //false
console.log(a == b); //false

Второй сет выглядит так:

a = [1, 2, 3];
b = [[1,2,3],2,3]; -> Jagged Array;
c = "1,2,3"
0 голосов
/ 29 апреля 2020
b = [1, 2, 3]; // first
b = [a, 2, 3]; // second

первые элементы массивов различны

ps избегайте '==' и используйте '===' в производстве.

...