var new= function(J, S) {
if (!J || !S) return 0;
谁能帮我理解这个条件?
如果参数 J 或 S 中的任何一个是"falsey",它基本上将返回 0(一个"falsey"值本身(,这在 JavaScript 中意味着它们等于undefined
、false
、NaN
、null
、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)
正在检查是否至少有一个变量J
或S
计算为falsey
值,然后表达式将计算为true
并因此执行return 0
。
但请注意,您的代码中有一个Uncaught SyntaxError: Unexpected token 'new'
,这是因为new
是一个不能用作变量名的 JavaScript 保留字。