使用或语句在javascript中定义变量

Kry*_*ian 0 javascript

谁能解释我为什么我的代码不能正常工作?

test = function(argument){
var arg = argument || true;
console.log(arg)
};
test(false);
Run Code Online (Sandbox Code Playgroud)

并且返回总是如此.我认为只有争论才会成真'undefined'?谢谢你的回答!:)

Dan*_*ite 5

||是逻辑或运营商.所以false OR true评估为true.

undefined也是falsey如此,所以它是返回操作员右侧的一个简短的手.

你可能想要这个

var arg = typeof argument !== 'undefined' ? argument : true;
Run Code Online (Sandbox Code Playgroud)


Tom*_*icz 5

true如果argument假的,它将打印,即:

  • false
  • null
  • undefined
  • 空字符串
  • 0
  • NaN

例如:

'' || true
Run Code Online (Sandbox Code Playgroud)

将评估为true.