2017-03-05 4 views
0

私はjQueryのに新しいですので、私は変数$テストを確認したいので、私の条件は、有効な最初のもの又は第二の1である条件jQueryのは、typeof演算とOR条件

var $test = ''; 

1. 
if (typeof($test == 'undefined' || $test == '')) { 
    console.log('Variable is empty'); 
} 
else 
{ console.log('variable is not empty'); 
} 

2. 
if (typeof($test) == 'undefined' || $test == ' ')) { 
    console.log('Variable is empty'); 
} 
else 
{ console.log('variable is not empty'); 
} 

ある空/未定義です。 2番目の場合はなぜですか?

が最初のケースでは、それはあなたが望むチェックし、有効な状態ではありません

if (typeof(true/false)) { 

に解決するため

+0

これはjQueryのに固有の問題ではない、それは一般的なJavaScriptの質問です。あなたの質問のタグとタイトルを変更することを検討してください。 –

答えて

0
if (typeof($test) == 'undefined' || typeof($test) == '') { 

は有効です。あなたは2番目を欲しい。

1

あなたが与えたどちらの例は正しいです:

  1. あなたの最初の例では、両方の比較の前後に括弧を挿入し、これは彼らがtypeofに1つの引数として扱われます。

  2. はあなたの第二の例は、 単一のスペース(' ')の代わりに、空の文字列('')に比べて正しくが、その後typeofを使用しました。

また、あなたはあなたの比較のために代わりに緩い等価演算子(==)の厳密な等価演算子(===)を使用する必要があります。

は二つの方法を組み合わせる(及び typeofは括弧を必要としないことに注意してください):

var $test = ''; 
 

 
if (typeof $test === 'undefined' || $test === '') { 
 
    console.log('Variable is empty'); 
 
} else { 
 
    console.log('variable is not empty'); 
 
}