【发布时间】:2020-02-17 02:02:37
【问题描述】:
我正在查看另一个人的代码,发现这个特定部分我不明白逻辑运算符的用途。 (请注意,我仍然从 JavaScript 开始,但在寻求您的帮助之前,我也做了尽可能多的研究。)
const createStream = (options) => {
const stream = new PassThrough({
highWaterMark: options && options.highWaterMark || null,
});
stream.destroy = () => { stream._isDestroyed = true; };
return stream;
};
所以,据我了解,这基本上是一个函数 createStream(options),它创建了一个名为 stream 的变量,它是一个 stream.PassThrough 对象。
现在,让我有点烦恼的是highWaterMark: options && options.highWaterMark || null, 部分。
我根本不明白这些。例如,我知道如何在 if() 语句中使用逻辑运算符,但这对我来说没有意义,而且我在网上找不到很多解释。
感谢我能得到的任何帮助。
【问题讨论】:
-
这意味着,如果 options.highWaterMark 没有值,则将 options.highWaterMark 的值设置为 null。这样做可以避免未定义的变量产生意想不到的影响。此外,可以在脚本的其他地方检查 options.highWaterMark 的空值,以确定是显示还是隐藏文档中的某些相关元素。这意味着您只需要检查 null,而不是 null 或 undefined。
标签: javascript node.js stream logical-operators