|| 是什么意思? (逻辑或,双竖线)表达式可以作为独立的语句吗?

问题描述 投票:0回答:2

下面的代码单独有意义,但我不明白当它组合成一个语句时它是如何工作的,如下所示。

我无法理解的那一行是“discard.test(word) || (......” 或 || 运算符在这个语句中做什么?

words.forEach(function(word) {
  discard.test(word) ||
    (word = word.replace(punctuation, ""),
      stopWords.test(word.toLowerCase()) ||
    (word = word.substr(0, maxLength),
      tag_index[word.toLowerCase()] = word,
      tags[word = word.toLowerCase()] = (tags[word] || 0) + 1));
});
javascript operators short-circuiting
2个回答
2
投票

||
之后的代码仅当
discard.test(word)
返回错误时才会执行。


1
投票

基本上就是这个,稍微纠正一下。

words.forEach(function(word) {
    if (!discard.test(word)) {
        word = word.replace(punctuation, "");
        if (!stopWords.test(word.toLowerCase()) {
            word = word.substr(0, maxLength);
            tag_index[word.toLowerCase()] = word;
            word = word.toLowerCase();
            tags[word] = (tags[word] || 0) + 1);
        }
    }
});

这是一篇短文

if (!condition) {
}
© www.soinside.com 2019 - 2024. All rights reserved.