如果存在价值,请执行此操作。未定义与空?
If value exists, do this. undefined vs null?
我想在点击按钮时呈现特定的动作。
条件是:
(如果输入字段中存在值,则写入 'value exists'。如果值不存在,则警告)。
我尝试用 null 替换 undefined。
我还尝试替换运算符 === 和 ==。
None 有效!请帮忙。
<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>
null
、undefined
和一个空字符串(""
)都是JavaScript中的'falsey'值;这意味着如果将它们传递给 !
运算符,结果将是 true
。您可以通过 运行 !("")
、!(null)
或(对于 undefined
)通过定义 var x;
然后调用 !x
在您的控制台中对此进行测试.
此外,if
语句实际上并不检查其条件是否等于 true
,它检查条件是否为 'truthy'(即计算结果为 false
当通过 !
).
因此,您需要做的就是将 if
语句的条件设置为 document.getElementById('typer').value
,因为只要元素的值不为 null、undefined 或空string(或 false,也是假的),条件为真。
对于<input type="text">
,documentation声明其.value
属性的类型是DOMString
。
DOMString
is a UTF-16 String. As JavaScript already uses such strings, DOMString
is mapped directly to a String
.
这意味着.value
永远不会是null
或undefined
;有了这些知识,当你想知道一个值是否存在时,你可以做两件事:
- 使用
value.length
判断字符串是否为空
- 在
if
语句中使用 value
或 !value
本身来分别确定它是存在还是为空(空字符串的计算结果为 false
,而非空字符串计算结果为 true
)
我想在点击按钮时呈现特定的动作。
条件是: (如果输入字段中存在值,则写入 'value exists'。如果值不存在,则警告)。
我尝试用 null 替换 undefined。 我还尝试替换运算符 === 和 ==。 None 有效!请帮忙。
<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>
null
、undefined
和一个空字符串(""
)都是JavaScript中的'falsey'值;这意味着如果将它们传递给 !
运算符,结果将是 true
。您可以通过 运行 !("")
、!(null)
或(对于 undefined
)通过定义 var x;
然后调用 !x
在您的控制台中对此进行测试.
此外,if
语句实际上并不检查其条件是否等于 true
,它检查条件是否为 'truthy'(即计算结果为 false
当通过 !
).
因此,您需要做的就是将 if
语句的条件设置为 document.getElementById('typer').value
,因为只要元素的值不为 null、undefined 或空string(或 false,也是假的),条件为真。
对于<input type="text">
,documentation声明其.value
属性的类型是DOMString
。
DOMString
is a UTF-16 String. As JavaScript already uses such strings,DOMString
is mapped directly to aString
.
这意味着.value
永远不会是null
或undefined
;有了这些知识,当你想知道一个值是否存在时,你可以做两件事:
- 使用
value.length
判断字符串是否为空 - 在
if
语句中使用value
或!value
本身来分别确定它是存在还是为空(空字符串的计算结果为false
,而非空字符串计算结果为true
)