当前位置: 首页 > 知识库问答 >
问题:

JavaScript空检查

陶福
2023-03-14
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可能有任何用处。


共有3个答案

柴衡
2023-03-14

在您的情况下,使用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');
陶博涉
2023-03-14
匿名用户

在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的参数调用的…”

隆宏爽
2023-03-14

未定义变量不同于值未定义的

未定义的变量:

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可能发生这样的事情吗? 如果不可能的话,在