🔖

【javascript】等価演算子と厳密等価演算子について

2023/11/15に公開

はじめに

javascriptにて開発を行っており、何気なく等価演算子を使用していたところ、「そういえば==使ってたけど、===じゃなくていいんだっけ、、、」と頭によぎり、以降気になってしまい夜しか眠れないので調査した時の内容をメモ。

内容

タイトルにあるが、等価演算子は==、厳密等価演算子===であり、名前の通り後者は前者よりも厳密に二項間の関係を演算する。
 具体的には、二つのオペランドに対し、型が同じで値も同じならtrueとなる。百聞は一見に如かずとよく言われているので、例を示す。

二つの等価演算子.js
// これはtrue
console.log(1 == '1');
console.log(1 == true);
console.log(0 == false);
console.log(null == undefined);

// これはfalse
console.log(1 === '1');
console.log(1 === true);
console.log(0 === false);
console.log(null === undefined);

上述のように、==ではtrueとなっていたものがfalseとなったりする。(というよりも直感的にはfalseとなるものが==ではtrueになってしまっているような気もする)

個人的には、特別な理由がない限り通常のif文では===を使用することをお勧めする。

まとめ

このような細かい文法は開発をバリバリやっている人でも抜け漏れがよくあるので、私も他人事と思わずに知識として取り入れていきたいと思っている。

Discussion