javascript - 如果语句为空字符串则运行

标签 javascript

如果我在控制台中执行此操作:

document.querySelectorAll('.error')

返回长度为3的对象。

如果任何属性值为空,那么我不希望运行 if 语句:

对此感到沮丧后(我使用的是 != ''),互联网告诉我使用 !== ""

这是对象中属性的输出:

document.querySelectorAll('.error')[0]
""

document.querySelectorAll('.error')[1]
"some string"

document.querySelectorAll('.error')[2]
""

到目前为止,我对 JS 的陌生可能从我的问题中就可以看出。是检查空字符串以使用我所做的“最佳”方法!==

<script>

var errorElems = document.querySelectorAll('.error');

for(i=0; i<errorElems.length; i++) {
    if(errorElems[i].textContent !== ""){
        dataLayer.push({
            "event": "errors",
            "eventCategory": "error messages",
            "eventAction": errorElems[i].id,
            "eventLabel": errorElems[i].textContent
            })
        };
    };

这似乎有效。但我是一个人在一台台式机上检查一个浏览器(Chrome),如果这很重要的话。

最完整的证明(但相当简单)意味着什么? !== 是最好的测试吗?

最佳答案

如果它是一个空字符串,则 !== "" 是正确的选择。如果它也可能是未定义的(因为在选择 DOM 元素时很可能发生),那么您应该进行如下检查:

if (typeof string !== 'undefined' && string !== "") 

关于javascript - 如果语句为空字符串则运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27640053/

相关文章:

javascript - 如何通过设置类更改<Select/>的下划线颜色

c# - Razor block 内的 asp.net mvc 4 javascript 抛出错误

javascript - 复选框新状态未反射(reflect)

javascript - SVG block 触摸/鼠标滚轮事件

javascript - Node js session 销毁不重定向

javascript - 找到多个元素时如何过滤getByLabelText查询?

javascript - 单击按钮时将焦点设置在滚动上

javascript - 计算多种货币格式元素的总和

javascript - Firebase 对本地存储的值(value)

javascript - 将敏感信息保留在 JavaScript 代码中的安全缺陷