JavaScript中"if (!J || !S)"的含义是什么?


var new= function(J, S) {
if (!J || !S) return 0;

谁能帮我理解这个条件?

如果参数 J 或 S 中的任何一个是"falsey",它基本上将返回 0(一个"falsey"值本身(,这在 JavaScript 中意味着它们等于undefinedfalseNaNnull、0 或 ''(空字符串(。

目的可能是在继续函数的其余部分之前检查参数是否丢失,大概是因为如果缺少任一参数,函数将出错或返回无效结果。

如果 (||( J 或 S 是假的,则该函数返回 0

  • false
  • 0
  • '
  • ', ", '' (空字符串(
  • null
  • undefined
  • NaN

如果两个值都是真值,则返回undefined

var nu = function (J, S) {
if (!J || !S) return 0;
}

// booleans
console.log(nu(true, true));
console.log(nu(true, false));
console.log(nu(false, false));
// other truthy/falsy values
console.log(nu(1, 1));
console.log(nu(1, 0));
console.log(nu(true)); // S is undefined
console.log(nu('foo', ''));
console.log(nu({}, null));
console.log(nu(1, NaN));

如果 J = " 或 null 或未定义,则 0, NaN, false !J 将为真。

!"" -> true
!null -> true
!undefined -> true
!NaN -> true
!0 -> true
!false -> true

它将检查 J、S 变量是否为空或为空或未定义。

if (!J || !S)正在检查是否至少有一个变量JS计算为falsey值,然后表达式将计算为true并因此执行return 0

但请注意,您的代码中有一个Uncaught SyntaxError: Unexpected token 'new',这是因为new是一个不能用作变量名的 JavaScript 保留字。

最新更新