Javascript 空字符串逻辑上的.includes()
我正在调试某人的代码。“e”变量行检查用户是否启用了“保存数据”功能,或者是否处于慢速(2g)连接状态Javascript 空字符串逻辑上的.includes(),javascript,Javascript,我正在调试某人的代码。“e”变量行检查用户是否启用了“保存数据”功能,或者是否处于慢速(2g)连接状态 e=navigator.connection&(navigator.connection.saveData | | | |(navigator.connection.effectiveType | | |?)。包括(“2g”); 如果(!e&&d)(navigator.connection.effectiveType | | |“”)将解析为空字符串,如果effectiveType为空,未定
e=navigator.connection&(navigator.connection.saveData | | | |(navigator.connection.effectiveType | | |?)。包括(“2g”);
如果(!e&&d)
(navigator.connection.effectiveType | | |“”)
将解析为空字符串,如果effectiveType
为空
,未定义
或其他错误的非字符串值
如果不这样做,您将尝试调用
null.includes()
,这将引发异常。这是一种回退,因此如果其他所有未定义的或null
,它将安全地返回false
而不是抛出错误。a | | b | | c
将为您提供第一个truthy值或最后一个falsy值。例如,如果所有这些都是null
,那么您将得到null
。如果您尝试(a | | b | | c).includes(“任何”)
,您将得到一个错误。如果您想防止这种情况发生,那么您可以添加一个空字符串,并确保如果所有值都是虚假的非字符串值,那么您至少有一个回退。