前几天我好奇地想到了一段代码,但我不确定它到底是做什么的;
options = options || {};
Run Code Online (Sandbox Code Playgroud)
到目前为止我的想法; 如果存在则将变量设置options为值options,否则设置为空对象.
是/否?
当我在两个字符串之间使用逻辑运算符&&时,为什么它会给我第二个字符串作为输出:
console.log("" && "Dog"); // ""
console.log("Cat" && "Dog"); // "Dog"Run Code Online (Sandbox Code Playgroud)
我意识到有例外0,false,null,undefined,""和NaN,一切被评估为布尔在像上面的一个逻辑表达式真.但为什么输出是第二个字符串而不是第一个?为什么输出不仅仅是"真实",因为它被评估为布尔表达式?
这是什么意思:>>在JavaScript中意味着什么?
从这个角度来看:
document.onkeydown = document.onkeyup = function(e,v,y,k) {
(i=e.keyCode-37)>>2 || (keys[i] = e.type[5]&&1||(0))
}
Run Code Online (Sandbox Code Playgroud) 我正在努力了解JavaScript库,并且遇到了以下语句:
const assetsManifest = process.env.webpackAssets && JSON.parse(process.env.webpackAssets)
然后在库中,它assetsMannifest像对象一样使用
assetsManifest['/vendor.js']
我认为&&运算符仅用于返回boolean逻辑检查中的值。有人可以告诉我这是怎么回事吗?
非常感谢,
克莱门特
var array = props && props.children.find(ele => ele && ele.length);
Run Code Online (Sandbox Code Playgroud)
弄乱我的是AND(&&).前一行代码不应该返回一个布尔值吗?我知道它没有,因为我已经尝试过它,它返回一个数组.
谁能解释一下这里发生了什么?
var operand1 = null;
var operand2 = true;
var booleanOperatorReturnsABoolean = operand1 && operand2;
booleanOperatorReturnsABoolean == false || booleanOperatorReturnsABoolean == true
Run Code Online (Sandbox Code Playgroud)
结果:假
在 JavaScript 控制台中运行此命令表明布尔运算符 (&&) 有时可能不会产生布尔值
这是我正在使用的功能。我实际上在React Native 文档中找到了它:
var testFunction = function(word) {
return word && '';
}
Run Code Online (Sandbox Code Playgroud)
这是我如何使用此功能:
var testWord = testFunction("Alex");
Run Code Online (Sandbox Code Playgroud)
终值testWord,由归国testFunction,是""。
我本来希望返回的值是trueor false,作为&&表达式的结果。但是,该值是一串 value ""。
有人可以解释这背后的逻辑吗?
我最近在一次采访中被问到了这个问题。我知道在JavaScript中评估从左到右。1 && 2应该是假的吧?我在这里读到另一个问题,即1 && 2返回2。而AND返回第一个伪造的值。但是感觉模糊。有人可以详细说明吗?
编辑: 引用已删除.与问题无关.
题
为什么它总是(当所有都是真的时候)取最后一个值?
例子 :
f= 1 && 2 && 3 //3
f= 'k' && 'd' && 's' //'s'
ps:我注意到在使用$ .callbacks调查pub/sub时

我理解|| b返回一个对象,而不是布尔值.我只是想不通为什么javascript会给出不同的结果
undefined || "" (result is "")
"" || undefined (result is undefined)
Run Code Online (Sandbox Code Playgroud)
我认为两者都应该返回"".有人可以向我解释一下吗?谢谢!
更新:@Quentin清楚地回答,""被评估为false,如果a和b都被评估为false,则|| b将返回b.