gpt4 book ai didi

javascript - 有没有一种很好的简单方法来检查 Javascript 中的变量是否有值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:37:00 24 4
gpt4 key购买 nike

我想检查这个:

if ( typeof myVar != "undefined" && myVar != null )
...

换句话说,我想检查一个变量是否有一个已定义的值(包括 0 或一个空字符串),但不是 undefined 或 null,我将其解释为无值。

我是否必须每次都进行两部分检查,还是有方便的快捷方式?

最佳答案

如果你想允许 0"" 作为有效值并且你想覆盖变量的情况甚至可能不会被删除,但不要考虑null 一个有效值,那么你必须像这样专门检查 undefinednull:

if (typeof myVar !== 'undefined' && myVar !== null) 
...

很多值都是错误的(它们不满足 if (myVar) 所以你真的必须有意识地决定你要测试哪些值。所有这些都是错误的:

undefined
false
0
""
null
NaN

如果你想允许一些,而不是其他,那么你必须做一个比 if (myVar) 更具体的测试,就像我上面展示的那样,以隔离你关心的值。

这是一篇关于虚假值的好文章:http://www.sitepoint.com/javascript-truthy-falsy/ .

如果你知道变量已经被声明,而你只是想看看它是否被初始化为 null 以外的东西,你可以使用这个:

if (myVar != undefined) 
...

仅使用 != 而不是 !== 允许通过类型转换测试 undefined 和 null。虽然,我不推荐这样做,因为如果你试图辨别虚假值,最好不要让 JS 引擎进行任何类型转换,这样你就可以准确控制它所做的事情,而不必记住所有类型转换平等规则。为了更明确,我会坚持这一点:

if (typeof myVar !== 'undefined' && myVar !== null) 
...

如果你想知道它是否有任何非假值,你当然可以这样做(但这不允许 0"" 有效值(value)观:

if (myVar) 
...

关于javascript - 有没有一种很好的简单方法来检查 Javascript 中的变量是否有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8348257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com