这是如何运作的? type = type || '任何';

时间:2011-07-25 23:13:28

标签: javascript

有谁能解释一下这个表达是如何运作的?

type = type || 'any';

这是否意味着如果type未定义,请使用'any'?

4 个答案:

答案 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,......