・比較方法
<input type="text" id="myText" />
というテキストフィールドに対して、
空文字かどうかをチェックする場合、
if (document.getElementById('myText').value == "" ) {
alert('空文字です');
}
とする事でチェックが出来ました。
他にも、Nullかどうかをチェックするには、
if (document.getElementById('myText').value == null ) {
alert('nullです');
}
によってチェックが出来ます。
どうせするのであれば、
論理和の演算子 || (条件の内、一つでもtrueならtrue)を使って、
if (document.getElementById('myText').value == "" || document.getElementById('myText').value == null) {
alert('空文字またはnullです');
}
とすれば、短く書けました。
・2015/06/27 追記
sounisi5011様により、アドバイスを頂きました。
JavaScriptには、==
によって比較する方法(等価比較)と===
によって、比較する方法(厳密等価比較)があるそうです。
前者はある意味曖昧な比較をする、という事で、曖昧に検索する事以外では、後者===
を比較した方が良い、との事でした。
(vbとかでも、常に if a = b then などは、常に、型も考慮して比較しますもんね。常にこちらで行ったほうがいいですね。)
また、==
と===
では、後者の方が処理速度が速いそうです。
これも単純な考えで、==
は処理の最初に比較する両者の型が同じかどうか比較し、その後、型が同じ場合は~~、型が違う場合は型変換をして~~、などと処理が走るのに、対して、===
では、そもそも、両者の型が同じかどうかを比較しない、という事でした。
ご指摘ありがとうございます。
・2015/06/29 追記
hikaru_oao 様より、アドバイスを頂きました。
こちらの記事を参考にさせて頂きますと、JavaScriptでは、nullや空文字を評価すると、if文の判定は、falseになるそうです。
よって、上記のif文は以下のように書き表せます。
if (!(document.getElementById('myText').value)) {
alert('空文字またはnullです');
}
※ 厳密には空文字・nullだけでは無いですが。
ご指摘ありがとうございます。