我有一个练习,需要接受两个输入,并检查它们是否都等于一。
如果是console.log阳性,则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中输入,而在其他if中输入nither。顺便说一下,您可以使用&;运算符,如果第一个为真,第二个为真则。。。
function isPositive(firstNum, secondNum){
if (firstNum === 1 && secondNum === 1) {
console.log('positive')
} else {
console.log('no positive')
}
}
undefined
是返回的,因为您没有显式返回该函数上的某些内容。如果我们进行一些重构,你会看到,它是按照假设工作的。
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'