javascript 中的 javascript 输入有问题

problem with an javascript inputs in javascript

我有一个练习,我需要接受两个输入并检查它们是否都等于一个。

如果是 console.log 肯定 else console.log 错误

我试过这样的事情:

function isPositive(firstNum, secondNum) {
  if (firstNum !== 1) {
    console.log('no positive')
  } else if (secondNum === 1) {
    console.log('positive')
  }
}

isPositive(5, 7)
isPositive(5, 10)
isPositive(5, 6)
isPositive(5, 1)
isPositive(1, 1)

然后当我 运行 它在 chrome 控制台中

isPositive(5, 7)
not positive
undefined

isPositive(5, 10) 
not positive
undefined

isPositive(5, 6) 
not positive
undefined

isPositive(5, 1) 
not positive
undefined

isPositive(1, 1)
 yes positive
undefined

除了以下情况,您的代码工作正常:

firstNum = 1
secondNum > 1

因为不会在第一个 if 中输入而在 else 中也不会输入。 顺便说一句,您可以使用 && 运算符来表示如果第一个为真,第二个为真,则...

function isPositive(firstNum, secondNum){
   if (firstNum === 1 && secondNum === 1) {
        console.log('positive')
   } else {
        console.log('no positive')
   }
}

undefined 是 return 因为您没有明确地 return 该函数的某些内容。如果我们进行一些重构,您会发现它是按预期工作的。

function isPositive(a, b) {
  return (a === 1) && (b === 1) ? 'positive' : false
}

console.log(isPositive(5, 7))
// => false
console.log(isPositive(5, 10))
// => false
console.log(isPositive(5, 6))
// => false
console.log(isPositive(5, 1))
// => false
console.log(isPositive(1, 1))
// => 'positive'