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?

More than 5 years have passed since last update.

undifined !== '' がtrueになる理由

Posted at

新卒の駆け出しエンジニアです。不慣れなJavascriptの実装中に等価演算子について理解していなかったために、少しハマってしまったことを共有します。

厳密等価演算子

厳密不等価演算子!=====の逆。
そして=====の違いは===はデータ型を変換するかどうか。

例)

1 === '1'
=> false

しかし

1 == '1'
=>true

下の方の==では型まで厳密にみていないため(同じ方に変換しようと試みる)trueになる。

!=====の逆で、型も含めて等しくなければ「true」
なので型が等しくないため

1 !== '1'
true

になる

undifined !== ''

undefined'' もboolean型ではfalseに変換される。
だが変換されない厳密不等価演算子では、お互いの型が違うためtrueになってしまう。

つまり値がなかったらという処理を作る時に、不本意にtrueになってしまう場合がある。

そのため

if (hoge !== '') {

より

if (!hoge) {

と書くほうが良い

0
0
1

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?