Javascript 逻辑运算符或
Javascript Logical Operator OR
我认为这是一个非常标准的 Javascript 逻辑运算符示例,但我觉得有趣的是一个拼写错误使答案正确。当 bored = fasle(false 拼写错误)时,代码正确执行。为什么 "fasle" 有效?任何输入表示赞赏。
var tired = false;
var bored = true;
var nap = function() {
nap = tired || bored;
bored = fasle;
//tired = false;
if ( nap = true) {
console.log("they're both true!");
}
else ( nap = false); {
console.log("they're false!");
}
};
fasle
被评估为 undefined
,然后在转换为布尔值时评估为 false。
但是false === fasle
计算结果为假,因为它们有不同的类型。
这会在严格模式下给你一个错误javascript,因为在这种情况下不允许未定义的变量。
我猜你的脚本 运行 "correctly" 确实与你使用的浏览器有关,我一开始否认了这一点。在 safari 和 chrome.
上测试时,这只会引发错误
顺便说一句,if ( nap = true)
永远为真,而 if ( nap = false)
永远为假。这是因为 =
是赋值运算符,而 ==
是您想要的相等比较运算符。赋值运算符将始终计算为正确的操作数。
我认为这是一个非常标准的 Javascript 逻辑运算符示例,但我觉得有趣的是一个拼写错误使答案正确。当 bored = fasle(false 拼写错误)时,代码正确执行。为什么 "fasle" 有效?任何输入表示赞赏。
var tired = false;
var bored = true;
var nap = function() {
nap = tired || bored;
bored = fasle;
//tired = false;
if ( nap = true) {
console.log("they're both true!");
}
else ( nap = false); {
console.log("they're false!");
}
};
fasle
被评估为 undefined
,然后在转换为布尔值时评估为 false。
但是false === fasle
计算结果为假,因为它们有不同的类型。
这会在严格模式下给你一个错误javascript,因为在这种情况下不允许未定义的变量。
我猜你的脚本 运行 "correctly" 确实与你使用的浏览器有关,我一开始否认了这一点。在 safari 和 chrome.
上测试时,这只会引发错误顺便说一句,if ( nap = true)
永远为真,而 if ( nap = false)
永远为假。这是因为 =
是赋值运算符,而 ==
是您想要的相等比较运算符。赋值运算符将始终计算为正确的操作数。