Javascript 这是怎么回事?类型=类型| |和#x27;任何';;
谁能给我解释一下这个表达式是怎么工作的吗Javascript 这是怎么回事?类型=类型| |和#x27;任何';;,javascript,Javascript,谁能给我解释一下这个表达式是怎么工作的吗 type = type || 'any'; 这是否意味着如果类型未定义,请使用“any”?这是一个正确或可选的条件。基本上不那么冗长 测试一下: 这是一个正确或可选的条件。基本上不那么冗长 测试一下: 这意味着,如果类型的计算结果为false,则使用“any”。也就是说,如果类型未定义,false,0,…这意味着,如果类型的计算结果为false,则使用“any”。也就是说,如果type是未定义的、false、0、如果type是“falsy”(即fals
type = type || 'any';
这是否意味着如果类型未定义,请使用“any”?这是一个
正确或可选的条件。基本上不那么冗长
测试一下:
这是一个正确或可选的条件。基本上不那么冗长
测试一下:
这意味着,如果类型的计算结果为false,则使用“any”。也就是说,如果类型未定义,false,0,…这意味着,如果类型的计算结果为false,则使用“any”。也就是说,如果type是未定义的、false、0、如果type
是“falsy”(即false
,或未定义的
或空字符串或null或未定义),则使用“any”如果type
是“falsy”(即false
,或未定义的
或空字符串或null或未定义的),则使用“any”如果变量类型
是一个“假”值,则将其设置为字符串'any'
,否则将其设置为自己的值。如果变量类型
是一个“假”值,则将其设置为字符串'any'
,否则,它将被设置为自己的值。MDN Docs to the rescue:Jaidev您为什么觉得有必要从问题中删除他的“提前感谢”?这真的有必要吗?在JavaScript表达式中使用&&
和|
的短路,特别是作为三元运算符的替代,可以就此主题写一篇简短但有趣的论文。最简单的例子是OP给出的例子——如果设置为“有趣的”值,则使用第一个值,否则使用常量作为值——但还有更复杂的用例。MDN文档解救:Jaidev为什么你觉得有必要从问题中删除他的“提前感谢”?这真的有必要吗?在JavaScript表达式中使用&&
和|
的短路,特别是作为三元运算符的替代,可以就此主题写一篇简短但有趣的论文。最简单的情况是OP给出的情况——如果设置为“有趣的”值,则使用第一个值,否则使用常量作为值——但还有更复杂的用例。或者NaN(@nnnnnn-我遗漏了其他的吗?)或者NaN(@nnnnnn-我遗漏了其他的吗?)
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]