function test(data) {
if (data != null && data !== undefined) {
// some code here
}
}
如果在除
typeof
之外的任何上下文中访问未定义的变量,您将得到一个错误
我发现,在Ryan的回答中♦, maerics和nwellnhof,即使没有为函数提供参数,其参数变量也总是声明的。这一事实也证明下面列表中的第一项是错误的。
据我了解,可能会出现以下情况:
>
函数的参数为null
(或undefined
),在这种情况下,data!=null
已保护内部代码,呈现
问:我的理解正确吗?
我在Firefox的控制台中尝试了以下方法:
--
[15:31:31.057] false != null
[15:31:31.061] true
--
[15:31:37.985] false !== undefined
[15:31:37.989] true
--
[15:32:59.934] null != null
[15:32:59.937] false
--
[15:33:05.221] undefined != null
[15:33:05.225] false
--
[15:35:12.231] "" != null
[15:35:12.235] true
--
[15:35:19.214] "" !== undefined
[15:35:19.218] true
我想不出
数据!==在
数据之后未定义null
可能有任何用处。
在您的情况下,使用data==null
(这仅适用于null和未定义-在第二张图片中,重点放在null未定义的行/列上)
function test(data) {
if (data != null) {
console.log('Data: ', data);
}
}
test(); // the data=undefined
test(null); // the data=null
test(undefined); // the data=undefined
test(0);
test(false);
test('something');
匿名用户
在JavaScript中,null
是一个特殊的单例对象,它有助于发出“无值”的信号。您可以通过比较来测试它,像在JavaScript中一样,使用==
运算符来避免混淆类型强制是一个很好的实践:
var a = null;
alert(a === null); // true
正如@rynah提到的,“未定义”在JavaScript中有点混乱。然而,即使x不是声明的变量,测试(x)类型是否是字符串“未定义”也是安全的:
alert(typeof(x) === 'undefined'); // true
此外,如果变量未初始化,则变量可能具有“未定义值”:
var y;
alert(typeof(y) === 'undefined'); // true
总而言之,您的支票应如下所示:
if ((typeof(data) !== 'undefined') && (data !== null)) {
// ...
但是,由于变量“data”是一个形式函数参数,因此始终定义它,因此不需要使用“typeof”运算符,您可以安全地直接与“undefined value”进行比较。
function(data) {
if ((data !== undefined) && (data !== null)) {
// ...
这段代码相当于说“如果函数是使用已定义且不为null的参数调用的…”
未定义变量不同于值未定义的
。
未定义的变量:
var a;
alert(b); // ReferenceError: b is not defined
值未定义的变量
:
var a;
alert(a); // Alerts “undefined”
当一个函数接受一个参数时,该参数总是被声明的,即使它的值是未定义的,所以不会有任何错误。关于,你是对的空
后跟!==但未定义的
是无用的。
问题内容: 如何在JavaScript中检查空值?我在下面编写了代码,但是没有用。 在JavaScript程序中如何找到错误? 问题答案: JavaScript在检查“空”值方面非常灵活。我猜您实际上是在寻找空字符串,在这种情况下,这种简单的代码将起作用: 这将检查空字符串(), ,, 以及数字和 请注意,如果您专门检查数字,则使用此方法时常会犯错,对于返回的函数,它是首选(或(或(也检查了错误代
本文向大家介绍JavaScript / Typescript对象是否为空检查?,包括了JavaScript / Typescript对象是否为空检查?的使用技巧和注意事项,需要的朋友参考一下 对于null检查,可以使用!健康)状况。 示例 以下是代码- 要运行以上程序,您需要使用以下命令- 在这里,我的文件名为demo305.js。 输出结果 这将产生以下输出-
本文向大家介绍sitecore 空/空检查,包括了sitecore 空/空检查的使用技巧和注意事项,需要的朋友参考一下 示例 IsNotNull 这是一种非常简单且流行的方法,用于检查项目是否不为空。它只是检查传入的对象是否为空。 IsNotNullOrEmpty 这与上面的IsNotNull相同,但是适用于字符串值而不是对象。 一片空白 这只是该IsNotNull()方法的逆过程。此方法断言该对
问题内容: 我看到了这个问题,但是没有看到JavaScript特定的示例。JavaScript中是否有一个简单的可用工具,还是仅用于检查的情况? 问题答案: 如果您只想检查是否有任何价值,可以 如果您需要专门为在空空字符串检查,我想核对是你最好的选择,使用的运营商(让你知道这是,事实上,一个字符串你比较反对)。
本文向大家介绍如何在JavaScript中检查null,undefined或空白变量?,包括了如何在JavaScript中检查null,undefined或空白变量?的使用技巧和注意事项,需要的朋友参考一下 获得以下结果后,您可以查找变量为null还是未定义。如果结果为“ false”,则表示变量为null且未定义。 在这里,变量结果为“ True”- 使用“ typeof”检查变量是否存在-
我想知道是否有可能在Java中“避免”空检查,以下面的代码为例: 它必须检查4次,否则代码将失败。 是否可以将语句转换为只有在没有NullPointerException时才执行的一行式语句?当出现异常时,该行应该被忽略。 这里我不是在谈论一个通用的语言特性,我是在谈论一个只有当您明确决定这样做时才会上交的特性。 例如:将是建议代码的一个片段。 在Java可能发生这样的事情吗? 如果不可能的话,在