JavaScriptにおける値と型の不等価比較

演算子!=の他に、比較時に型を考慮する 演算子!==も存在します。例を使って それらの違いを見ていきましょう。

演算子!=を使って2つの数値3を 比較するとします。この演算子は値が等しく 「ない」かどうかを比較します。私たちの 値は実際に等しいので、条件は偽になります:

javascriptif (3 != 3) {
  console.log('+++');
} else {
  console.log('---'); // こちらが実行される
}

次に、値の一方を引用符で囲んだとします。 この場合でも、演算子!=はそれらを 等しいとみなします(値が一致しており、 この演算子にとって型は重要ではないため)。 条件は再び偽になります:

javascriptif ('3' != 3) {
  console.log('+++');
} else {
  console.log('---'); // こちらが実行される
}

次に、2つの数値3を演算子!==を 使って比較してみましょう。この演算子も それらを等しいとみなします:

javascriptif (3 !== 3) {
  console.log('+++');
} else {
  console.log('---'); // こちらが実行される
}

しかし、今度は3の一方を引用符で囲むと、 演算子!==は2つの3を等しくないと みなします。なぜなら、値は一致していますが、 型が異なるからです:

javascriptif ('3' !== 3) {
  console.log('+++'); // こちらが実行される
} else {
  console.log('---');
}
Задание 1

コードを実行せずに、コンソールに何が 出力されるか判断してください:

javascriptlet test1 = '3';
let test2 = '3';
    
if (test1 != test2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 2

コードを実行せずに、コンソールに何が 出力されるか判断してください:

javascriptlet test1 = '3';
let test2 = '3';
    
if (test1 !== test2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

コードを実行せずに、コンソールに何が 出力されるか判断してください:

javascriptlet test1 = 3;
let test2 = '3';
    
if (test1 != test2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 4

コードを実行せずに、コンソールに何が 出力されるか判断してください:

javascriptlet test1 = 3;
let test2 = '3';
    
if (test1 !== test2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 5

コードを実行せずに、コンソールに何が 出力されるか判断してください:

javascriptlet test1 = 3;
let test2 = 2;
    
if (test1 !== test2) {
  console.log('+++');
} else {
  console.log('---');
}