質問: (String型のオブジェクト); if(content && content !== ""){ //処理 } ``` サンプルコードに上記のようなコードが出てきたのですが、if文の条件に使っている部分の意味がわかりません。 ご教授お願いいたします。
回答: `if(content && content !== "")`の中にある`&&`は、論理AND演算子です。expr1 && expr2 とした場合、`expr1`が`false`であれば`expr1`を返し、そうでない場合は`expr2`を返します。したがって、演算対象の両方が`true`ならば`true`を返し、そうでなければ、`false`を返します。 次に、`content`の真偽はどうなるかというと、`0`, `-0`, `null`, `false`, `NaN`, `undefined`, 空文字列 (`""`)の場合に`false`になります。 右側の、`content !== ""`は、空文字列でないということです。JavaScriptの場合は、`if(content && content !== "")`としなくても、`if(content)`だけで空文字列を除外することができます。 サンプルで`if(content && content !== "")`となっているのは、`if(content !== "")`としてあったら`content`が`null`の時にエラーが出たので、反射的に`if(content && content !== "")`と修正したか、他のプログラム言語の多くが`null`と`空文字列`を別にチェックする必要があるためその習慣からそのようなコードにしたものと思われます。