javascript プリミティブ型とオブジェクト型を比較する

javascript プリミティブ型とオブジェクト型を比較する

javascriptで、プリミティブ型とオブジェクト型を比較するサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 103.0.5060.114

プリミティブ型とオブジェクト型

javascriptにおいて、プリミティブ型とオブジェクト型は、基本的に異なります。

プリミティブ型は「文字列 ・ 数値・論理値・null・undefined」のことで以下を指します。

const str = "mebee"; // 文字列型

const num = 5; // 数値型

const bln = true; // 論理値型

オブジェクト型で表す場合は、以下となります。

const strObj = new String("mebee"); // Stringオブジェクト

const numObj = new Number(5); // Numberオブジェクト

const blnObj = new Boolean(true); //Booleanオブジェクト

プリミティブ型とオブジェクト型比較

プリミティブ型とオブジェクト型を比較してみると、
値が同じであれば、trueになることが確認できますが、

const str = "mebee"; // 文字列型
const num = 5; // 数値型
const bln = true; // 論理値型

const strObj = new String("mebee"); // Stringオブジェクト
const numObj = new Number(5); // Numberオブジェクト
const blnObj = new Boolean(true); //Booleanオブジェクト

console.log(str == strObj); // true 値が同じであればtrue
console.log(num == numObj); // true 値が同じであればtrue
console.log(bln == blnObj); // true 値が同じであればtrue

厳密比較の場合は、型もみるためfalseになります。

console.log(str === strObj); // false
console.log(num === numObj); // false
console.log(bln === blnObj); // false