猿问

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

我想在单击按钮时呈现某些操作。


条件是:(如果输入字段中存在值,则写入“值存在”。如果值不存在,则发出警报)。


我尝试用 null 替换 undefined 。我还尝试替换运算符 === 和 ==。没有一个有效!请帮忙。


<html>

<head>


</head>

<body>


<input id='typer' type='text'></input>

<button onclick='hey()'>click</button>


<p id='pw'></p>


<script>


var pw

pw = document.querySelector('#pw');


function hey() {

    if (document.getElementById('typer').value !== undefined) {

        pw.innerHTML = 'value exists';

    } else {

        alert('value does not exists');

    }

}


</script>

</body>

</html>


12345678_0001
浏览 89回答 2
2回答

jeck猫

null、undefined和空字符串 (&nbsp;"") 都是 JavaScript 中的“假”值;这意味着如果将它们传递给!运算符,结果将为true。您可以在控制台中通过运行!("")、!(null)或 (for&nbsp;undefined) 通过定义var x;然后调用来测试这一点!x。更重要的是,if语句实际上并不检查其条件是否等于true,而是检查条件是否为“真”(即false通过时计算为!)。因此,您需要做的就是将语句的条件设置if为document.getElementById('typer').value,因为只要元素的值不为 null、未定义或空字符串(或 false,这也是 falsey),则条件为 true 。

茅侃侃

对于<input type="text">,文档指出其属性的类型.value是 a DOMString。DOMString是一个 UTF-16 字符串。由于 JavaScript 已经使用此类字符串,DOMString因此直接映射到String.这意味着.value永远不会是null或undefined;有了这些知识,当您想知道某个值是否存在时,您可以做两件事:用于value.length判断字符串是否为空在语句中使用valueor!value本身来if分别确定它是否存在或为空(空字符串的计算结果为false,而非空字符串的计算结果为true)
随时随地看视频慕课网APP

相关分类

Html5
我要回答