javascript - 编码说明 : variable set with bitwise OR character in JavaScript

标签 javascript bit-manipulation bitwise-operators bitwise-or

我今天遇到了一些我不理解的 JS,并且谷歌搜索按位运算并没有真正帮助我。有人能解释一下下面的内容吗?

     function createExcerpt(string, maxLength) {
          // Set a default value of maxLength of 110
          maxLength = maxLength | 110;
          ...

虽然我读到管道字符是按位“或”,但我对上面发生的情况感到困惑。 如果我应该发布更多上下文功能,请告诉我。

最佳答案

考虑到前一行中存在该注释,这看起来是一个简单的拼写错误。

默认值的设置通常使用逻辑运算符||来完成,因此几乎可以肯定它是:

maxLength = maxLength || 110;

但是,这实际上是一个坏主意,因为如果 maxLength 已设置为错误值(例如零),它将被替换为默认值。这可能就是您想要的,但还不清楚。

我可能会选择稍微更冗长但绝对更清晰的:

if (maxLength === undefined) { maxLength = 110; }

它仍然适合一行,并且意图非常具体。

假设您有 ES6 可用,更好的方法是使用直接烘焙到函数调用中的默认参数:

function createExcerpt(string, maxLength = 110) {
    ...
}

关于javascript - 编码说明 : variable set with bitwise OR character in JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41389625/

相关文章:

javascript - 用户输入作为 JavaScript 变量

javascript - Javascript 和一般情况下的按位运算符

ruby - 将字符串转换为 ruby​​ 中的位,添加 1 位并转换回 ascii

java - 按位与非 boolean 值

java - 在 Java 中执行按位或和 32 位符号位扩展时出错

javascript - 为什么 (~(1 << 31)) === ~(1 << 31) 但转换为字符串时它们不相等?

javascript - 覆盖 RTCPeerConnection 回调 'onicecandidate'

javascript - 将 for 循环添加到 Google Charts 中的折线图

javascript - Javascript 正则表达式分组

bit-manipulation - 求一个数的平方