2011-07-25 19 views
1

誰でもこの表現がどのように機能するのか説明できますか?これはどのように機能しますか?タイプ=タイプ|| 'どれか';

type = type || 'any'; 

typeが未定義の場合は、「any」を使用しますか?

+0

MDN救助者への文書:[論理演算子](https://developer.mozilla.org/ja/JavaScript/Reference/Operators/Logical_Operators) – epascarello

+0

Jaidevなぜあなたは彼の編集の必要性を感じましたか? '質問から?本当に必要でしたか? – AlienWebguy

+0

短くて面白い論文が、JavaScript式の '&&'と '||'の短絡を使って、特に三項演算子の代用として書かれました。最も単純なケースは、OPが与えるものです。最初の値を「面白い」に設定した場合は最初の値、それ以外の場合は値として与えられた定数ですが、より複雑なユースケースがあります。 – Malvolio

答えて

5

です変数typeは "偽の"値で、文字列'any'に設定されます。そうでない場合は、それ自身の値に設定されます。

+0

(...または0)を使用して「任意」 – nnnnnn

+0

またはNaN(@nnnnnn - 私は他のものを見逃しましたか?) – Malvolio

2

これはtrue OR alternativeの状態です。基本的には冗長ではありません。

テストそれを:http://jsfiddle.net/AlienWebguy/ussBZ/3/

var type = 0; 

type = type || 'any'; 
alert('0 = ' + type); // alerts 0 = any 

type = 1; 

type = type || 'any'; 
alert('1 = ' + type); // alerts 1 = 1 

type = true; 

type = type || 'any'; 
alert('true = ' + type); // alerts true = true 

type = false; 

type = type || 'any'; 
alert('false = ' + type); // alerts false = any 

type = 'foobar'; 

type = type || 'any'; 
alert('foobar = ' + type); // alerts foobar = foobar 

type = ''; 

type = type || 'any'; 
alert('\'\' = ' + type); // alerts '' = any 

type = null; 

type = type || 'any'; 
alert('null = ' + type); // alerts null = any 

type = new Array(); 

type = type || 'any'; 
alert('new Array() = ' + type); // alerts new Array() = 

type = []; 

type = type || 'any'; 
alert('[] ' + type); // alerts [] = 

type = {}; 

type = type || 'any'; 
alert('{} = ' + type); // alerts {} = [object Object] 

type = new Object; 

type = type || 'any'; 
alert('new Object = ' + type); // alerts new Object = [object Object] 
1

意味タイプがfalseと評価された場合、 '任意の' を使用しています。タイプは、未定義の偽、0であればtypeが、その後場合は、 "任意の"

3

を使用し、(すなわちfalse、またはundefinedまたは空の文字列またはnullまたはundefined) "falsy" であればそれは...、

関連する問題