我今天遇到了一些我不理解的 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/