Javascript 检查变量是否为null
如何检查变量是否包含某个值。当我这样做时,它不起作用 我使用该函数检查变量是否为空:Javascript 检查变量是否为null,javascript,Javascript,如何检查变量是否包含某个值。当我这样做时,它不起作用 我使用该函数检查变量是否为空: var DEST_VALUE = 1 var APPDAYS_AFTER = 2 } 我使用该函数检查变量是否为空: var DEST_VALUE = 1 var APPDAYS_AFTER = 2 } 当然它没有任何作用,因为在您的示例中,DEST\u VALUE解析为true,就像APPDAYS\u之后的值一样。在javascript中转换为布尔值时解析为false的值为: function emp
var DEST_VALUE = 1
var APPDAYS_AFTER = 2
}
我使用该函数检查变量是否为空:
var DEST_VALUE = 1
var APPDAYS_AFTER = 2
}
当然它没有任何作用,因为在您的示例中,
DEST\u VALUE
解析为true,就像APPDAYS\u之后的值一样。在javascript中转换为布尔值时解析为false的值为:
function empty( mixed_var ) {
return ( typeof(mixed_var) === 'undefined' || mixed_var === "" || mixed_var === 0 || mixed_var === "0" || mixed_var === null || mixed_var === false );
}
如果你写信
false
null
undefined
The empty string ''
The number 0
The number NaN (yep, 'Not a Number' is a number, it is a special number)
你写“如果DEST\u值不正确,做点什么”(在你的例子中,它什么也不做)。如果要检查变量是否包含值:
if(!DEST_VALUE){
txtSiteId.value = fileContents.Settings.SiteID;
}
当然它没有任何作用,因为在您的示例中,DEST\u VALUE
解析为true,就像APPDAYS\u之后的值一样。在javascript中转换为布尔值时解析为false的值为:
function empty( mixed_var ) {
return ( typeof(mixed_var) === 'undefined' || mixed_var === "" || mixed_var === 0 || mixed_var === "0" || mixed_var === null || mixed_var === false );
}
如果你写信
false
null
undefined
The empty string ''
The number 0
The number NaN (yep, 'Not a Number' is a number, it is a special number)
你写“如果DEST\u值不正确,做点什么”(在你的例子中,它什么也不做)。如果要检查变量是否包含值:
if(!DEST_VALUE){
txtSiteId.value = fileContents.Settings.SiteID;
}
我想你的意思是“保存一些值”,比如“变量已经创建,所以它存在”,对吗?否则,您的方法将非常有效
如果要检查javascript中是否存在变量,必须检查其父对象的属性,否则脚本将失败。javascript中的每个对象都属于父对象,即使它看起来是全局的(然后,它属于窗口对象)。因此,尝试以下方法:
if(DEST_VALUE !== undefined){
//do something
}
if(窗口目标值)
//做点什么
我想你的意思是“保存一些值”,比如“变量已经创建,所以它存在”,对吗?否则,您的方法将非常有效
如果要检查javascript中是否存在变量,必须检查其父对象的属性,否则脚本将失败。javascript中的每个对象都属于父对象,即使它看起来是全局的(然后,它属于窗口对象)。因此,尝试以下方法:
if(DEST_VALUE !== undefined){
//do something
}
if(窗口目标值)
//做点什么
这将按预期工作-如果<代码>条件的计算结果为<代码>真<代码>那么内部代码将永远不会被命中。您试图实现什么?如果(!DEST\u VALUE)
与如果(DEST\u VALUE==null)
相同,并且从代码来看,这将始终是false
。因此它不会产生任何结果。@Talha的可能重复项不是严格意义上的true-如果DEST\u VALUE
为0,它也将计算为true
@Talha:“如果(!DEST\u VALUE)
与如果(DEST\u VALUE==null)
”不,它不会。例如,!0
为true,但0==null
为false。更重要的是,如果(!DEST_VALUE)
与null
无关,除非DEST_VALUE
恰好是null
(在这种情况下,表达式为true)。这是关于将给定值强制为布尔值,而不是将其与null
进行比较。这将按预期工作-如果条件的计算结果为true
,则条件都不会计算为true,因此内部代码永远不会被命中。您试图实现什么?如果(!DEST\u VALUE)
与如果(DEST\u VALUE==null)
相同,并且从代码来看,这将始终是false
。因此它不会产生任何结果。@Talha的可能重复项不是严格意义上的true-如果DEST\u VALUE
为0,它也将计算为true
@Talha:“如果(!DEST\u VALUE)
与如果(DEST\u VALUE==null)
”不,它不会。例如,!0
为true,但0==null
为false。更重要的是,如果(!DEST_VALUE)
与null
无关,除非DEST_VALUE
恰好是null
(在这种情况下,表达式为true)。它是将给定值强制为布尔值,而不是将其与null
进行比较。为什么要这样做<代码>!myVar
检查'falsy'值,而不仅仅是显式的false
(例如myVar==false
),因此您不需要一个臃肿的函数来执行与本机语言功能相同的操作。顺便说一句,“0”
的字符串表示形式不应该计算为false
,只有一个空字符串…@Chris,这是他的职责,如果它符合他对“空”的定义,他可以这样做。它和我的不匹配,但是…:-)是-该功能已更改多次,您可以看到最终结果。为什么?没有使用myVar,因为一切都不是那么简单。我遇到了一些问题,当它没有像我预期的那样工作。你为什么要这么做<代码>!myVar
检查'falsy'值,而不仅仅是显式的false
(例如myVar==false
),因此您不需要一个臃肿的函数来执行与本机语言功能相同的操作。顺便说一句,“0”
的字符串表示形式不应该计算为false
,只有一个空字符串…@Chris,这是他的职责,如果它符合他对“空”的定义,他可以这样做。它和我的不匹配,但是…:-)是-该功能已更改多次,您可以看到最终结果。为什么?没有使用myVar,因为一切都不是那么简单。我也遇到了一些问题,因为它的工作方式和我预期的不一样。这将引发ReferenceError,因为您可能无法引用JS中未声明的变量。请参阅我的答案以获得解决方案。@Steffen:问题清楚地显示了所声明的变量。但是FileNotFound呢???这将引发ReferenceError,因为您可能无法引用JS中未声明的变量。请参阅我的答案以获得解决方案。@Steffen:问题清楚地显示了所声明的变量。但是FileNotFound呢???