javascript - .includes() 在空字符串逻辑上
问题描述
我正在尝试调试某人的代码。“e”变量行检查用户是否启用了“保存数据”或者他是否处于慢速(2g)连接。
e = navigator.connection && (navigator.connection.saveData || (navigator.connection.effectiveType || "").includes("2g"));
if (!e && d)...
我感到困惑的部分是最后一个 OR 语句中的空括号。它只是一个冗余代码还是我错过了什么?
检查空字符串中是否包含“2g”有什么意义?
解决方案
(navigator.connection.effectiveType || "")
effectiveType
如果is或其他一些虚假的非字符串值null
,将解析为空字符串。undefined
如果你不这样做,你会尝试调用null.includes()
which 会引发异常。
推荐阅读
- javascript - 将 html 表单的响应下载到文本文件
- javascript - 在循环中为变量赋值
- python - 如何在循环中绘制水平条图以根据另一列中的值更改条上的颜色
- git - 仅在需要身份验证时如何将 git 协议从 https 切换到 ssh
- vue.js - 关闭控制台后,Vue cli 在 VPS 服务器上运行生产构建
- c++ - 模板化多栈实现 - 如何?
- mysql - Mysql 使用触发器或 mysql 函数从表中获取余额
- git - 如何在没有被拉取请求/合并同步的情况下将文件添加到存储库?
- php - 在文本文件中读取一行并将其用作 PHP 中的变量
- python - 根据预定义的选项列表将 Python DF 列拆分为 2