1.Here是任務。
聲明一個函數或類似| |,但不使用|operator.?/**
- @參數{any}???-第一個操作數
- @參數{any}???-第二個操作數
- @按順序將| |運算符應用于給定的操作數時,返回{any}相同的結果
2.Here是我嘗試過的(實際上人們給了我關于返回b1的建議?b1:b2。但我無法理解,也沒有在網上找到正確的解釋。
function or(b1, b2) {
if (b1 == false && b2 == false) return false;
else return b1 ? b1 : b2;
}
3.Here是編碼測試,上面的代碼通過了所有測試。但有誰能告訴我b1的邏輯嗎?b1:b2。我是初學者,請幫幫我!
//TEST 1
actual = or("bananas", false);
expected = "bananas";
if (actual === expected) {
console.log("Yay! Test PASSED.");
} else {
console.error("Test FAILED. Keep trying!");
console.log(" actual: ", actual);
console.log(" expected: ", expected);
}
//TEST 2
actual = or("", "bananas");
expected = "bananas";
if (actual === expected) {
console.log("Yay! Test PASSED.");
} else {
console.error("Test FAILED. Keep trying!");
console.log(" actual: ", actual);
console.log(" expected: ", expected);
}
//TEST 3
actual = or(true, true);
expected = true;
if (actual === expected) {
console.log("Yay! Test PASSED.");
} else {
console.error("Test FAILED. Keep trying!");
console.log(" actual: ", actual);
console.log(" expected: ", expected);
}
//TEST 4
actual = or(true, false);
expected = true;
if (actual === expected) {
console.log("Yay! Test PASSED.");
} else {
console.error("Test FAILED. Keep trying!");
console.log(" actual: ", actual);
console.log(" expected: ", expected);
}
發生了很多事情。這里有一個帶有
falsy
check的測試函數。Falsy是ValidateEnumber,它可以是null、空字符串或零。條件將始終返回false。如果你真的想用類型來測試值,你應該用===來代替。