为了账号安全,请及时绑定邮箱和手机立即绑定

如果存在价值,就这样做。未定义与空?

如果存在价值,就这样做。未定义与空?

12345678_0001 2023-09-25 16:46:38
我想在单击按钮时呈现某些操作。条件是:(如果输入字段中存在值,则写入“值存在”。如果值不存在,则发出警报)。我尝试用 null 替换 undefined 。我还尝试替换运算符 === 和 ==。没有一个有效!请帮忙。<html><head></head><body><input id='typer' type='text'></input><button onclick='hey()'>click</button><p id='pw'></p><script>var pwpw = document.querySelector('#pw');function hey() {    if (document.getElementById('typer').value !== undefined) {        pw.innerHTML = 'value exists';    } else {        alert('value does not exists');    }}</script></body></html>
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

nullundefined和空字符串 ( "") 都是 JavaScript 中的“假”值;这意味着如果将它们传递给!运算符,结果将为true。您可以在控制台中通过运行!("")!(null)或 (for undefined) 通过定义var x;然后调用来测试这一点!x

更重要的是,if语句实际上并不检查其条件是否等于true,而是检查条件是否为“真”(即false通过时计算为!)。

因此,您需要做的就是将语句的条件设置ifdocument.getElementById('typer').value,因为只要元素的值不为 null、未定义或空字符串(或 false,这也是 falsey),则条件为 true 。


查看完整回答
反对 回复 2023-09-25
?
茅侃侃

TA贡献1842条经验 获得超21个赞

对于<input type="text">,文档指出其属性的类型.value是 a DOMString

DOMString是一个 UTF-16 字符串。由于 JavaScript 已经使用此类字符串,DOMString因此直接映射到String.

这意味着.value永远不会是nullundefined;有了这些知识,当您想知道某个值是否存在时,您可以做两件事:

  1. 用于value.length判断字符串是否为空

  2. 在语句中使用valueor!value本身来if分别确定它是否存在或为空(空字符串的计算结果为false,而非空字符串的计算结果为true


查看完整回答
反对 回复 2023-09-25
  • 2 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信