有谁能解释一下这个表达是如何运作的?
type = type || 'any';
这是否意味着如果type未定义,请使用'any'?
答案 0 :(得分:5)
如果type
为“falsy”(即false
,或undefined
或空字符串或null或未定义),则使用“any”
答案 1 :(得分:3)
如果变量type
是“falsey”值,则将其设置为字符串'any'
,否则将其设置为自己的值。
答案 2 :(得分: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]
答案 3 :(得分:1)
这意味着,如果type的计算结果为false,则使用“any”。即如果type未定义,false,0,......