0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

==(等価演算子)と===(厳密等価演算子)の違い

Posted at

業務でコードレビューを行っている時に、メンバーのソースで意図せず"=="と"==="が混在していたので。
改めて違いについて記事にしてみます。

等価演算子(==)と厳密等価演算子(===)の定義

JavaScriptでもTypeScriptでも、等価演算子は非推奨で、厳密等価演算子を用いることが推奨されています。

”=="と”===”は厳密には異なる挙動を示します。
MDNのドキュメントを確認してみましょう。

等価演算子

等価演算子 (==) は、二つのオペランドが等しいことを検査し、論理値で結果を返します。厳密等価演算子とは異なり、オペランドの型が異なる場合には型の変換を試みてから比較を行います。

厳密等価演算子

厳密等価演算子 (===) は、二つのオペランドが等しいことを検査し、論理値で結果を返します。*等価演算子とは異なり、厳密等価演算子はオペランドの型が異なる場合、常に異なるものと判断します。*

実際の挙動を確認してみる

数値型の比較

console.log(1 == 1);
// true
console.log(1 === 1);
// true

文字列型の比較

console.log('hello' == 'hello');
// true
console.log('hello' === 'hello');
// true

数値型と文字列型の比較

cconsole.log('1' ==  1);
// true
console.log('1' ===  1);
// false

数値型と真偽型の比較

console.log(0 == false);
// true
console.log(0 === false);
// false

## まとめ
公式で推奨されていた通り、型まで等価であることが確認できる===を使うのが良さそうです。

実務だとコードを書いていく時、「公式に推奨されているから」や「現場の規約で決まっているから」などなぜ、どういった理由で推奨されているのかを考えながらコーディングをするということが技術力の底上げになっていくと思います。

少しでも参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?