javascript - 在 if 语句中使用按位或运行函数

标签 javascript

我有一种情况,我想确保 if 语句中使用的部分或所有函数都运行,而不管该语句是否已经为真。我知道我可以为此使用按位运算符。

function test1() {
    console.log('called1');
    return true;
}
function test2() {
    console.log('called2');
    return false;
}

if(test1() | test2()) {
    console.log('done');
}
// called 1
// called 2
// done

if(test1() | test2() | test1() || test2()) {
    console.log('done');
}
// called 1
// called 2
// called 1
// done

但是,按位或运算符的用法是否正确?我在任何地方都找不到这种用法的描述。

最佳答案

Is this a correct usage for the bitwise or operator though?

它是有效的,因为您的函数返回值(在您的情况下为 bool 值)可以成功地强制转换为有用的数值 (false => 0, true => 1), 它们可以一起进行 OR 运算,并且当 OR 运算在一起时确实给你一个值,你可以有用地强制返回 bool 值。

至于正确,好吧,如果我在代码中看到它,我会倾向于认为这是一个拼写错误,而您打算改为编写 ||。您至少必须对其进行评论以表明避免短路的意图。

但它是完全有效的,不会插入任何事情的发展,它是明确指定的行为。

关于javascript - 在 if 语句中使用按位或运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32902612/

相关文章:

javascript - Google Places JavaScript 自动完成 : can I remove the country from the place name?

javascript - 服务器端使用 Django 访问客户端浏览器的纬度/经度

javascript - 通过从 json 创建的给定二维数组动态填充表

javascript - 在条形图 d3js 旁边添加计数

javascript - Ember.js 将 'each' 变量传递到组件中

javascript - .js 文件适用于 chrome 和 firefox 但不适用于 IE

javascript - 如何在Google日历图表中使用 bool 类型列?

javascript - 如何优化接受正整数并返回下一个较小正整数的函数?

javascript - JavaScript 数组有问题吗?

javascript - React 组件不进行 ajax 调用