问题标签 [null-check]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
104 浏览

actionscript-3 - 可以以更好的方式对 null 进行默认检查吗?

很多时候我发现自己需要写类似的东西:

我很好奇是否有更好的方法来做到这一点?我主要担心的是我必须编写params["prizeLevel"]两次。

当然,这可以提取为类似于以下的函数:

但是,我必须从我想要进行此检查的任何地方访问此功能。因此,我想知道是否有一些聪明的方法可以解决这个问题。也许在某种位魔法的帮助下?或者原型/动态的东西在这里适用吗?

到目前为止,我想出的最佳解决方案是在代码 IDE 中创建一个宏,以使某些特定的键盘组合编写此代码。但我敢打赌,有人会有更好的主意。

0 投票
1 回答
41 浏览

null - Is it better to check for null and return or check for non-null and continue?

Given the following basic class:

Which of the following implementations of the test method is better programming practice?

Or p>

In trying to recollect from a professor some 10 years ago, best practice for an if statement is to have the condition that is likely to be true more often than false (the latter). However, recently I have been using a trial of ReSharper, and their suggestion is the former. The m_memberVariable member is initialized at instantiation of the class and will likely be non-null for the life of the class.

0 投票
5 回答
147 浏览

c# - C# 有没有类似于 JavaScript 的操作 || 二传手?

C# 和 JavaScript 的 || 有类似的操作吗?二传手?

例如,在 JavaScript 中,如果我想检查一个值是否为 null 并设置一个默认值,我可以这样做:

但是,当我想要 C# 中的这个功能时,我必须走这条路:

我知道这是小事,乞丐不能成为选择者,但如果可能的话,我想避免得到任何涉及疯狂黑客或扩展方法的答案。我可以使用三元运算符,但我只是好奇是否有我错过的语言功能。

更新:

到处都是很好的答案,但是 J0HN 和 Anton 打了它的头。C# 不会像上面示例中的 JavaScript 那样执行“虚假”值,因此??运算符不考虑空字符串。

感谢您的宝贵时间和出色的回应!

0 投票
5 回答
124 浏览

c# - 我可以在 OR 语句中包含对对象进行空值检查作为另一个条件吗?

可能重复:
在 .NET 中依赖 && 短路安全吗?

我不知道如何正确地表达问题的标题,但是用一行代码来解释很简单:

我可以这样做吗?或者这个:

0 投票
7 回答
1651 浏览

java - null != something 和 something != null 之间的区别

null != somethingJava和something != nullJava之间有区别吗?如果有区别,那么我应该使用哪一个,为什么?

0 投票
4 回答
17013 浏览

java - javax.annotation.Nonnull 与断言

我在方法参数上使用 Findbugs 和 javax.annotation.Nonnull。

在私有方法上,我通常添加一个断言行来检查空值,例如

最新的 Netbeans 版本 (7.3rc2) 报告断言检查是不必要的(因为 Nonnull 注释)。我不完全确定这是否是 Netbeans 错误。

可以因为我指定了 @Nonnull 注释而删除断言行吗?

据我了解,注释仅在静态分析期间使用,而断言在启用时在执行期间处于活动状态,因此两者不可替代。

0 投票
4 回答
44108 浏览

java - 通过 != null 或 !str.equals(null) 检查 Java 字符串空值?

在java中检查非空值的最佳方法是什么?

query != null对比 !query.equals(null).

哪个更好?为什么?

0 投票
9 回答
158702 浏览

sql - 对字符串变量进行空或空检查

我想知道上面的代码是否可以检查变量是空还是空。

0 投票
1 回答
85 浏览

java - 为“此”访问发出空检查?

当您通过this引用访问自己的实例字段时(例如,来自私有方法的or字段),生成的 Android Dalvik 字节码将包含一个字节码指令:objectintiget

这是当您访问另一个对象的字段(即不是通过this指针)时发出的相同指令,因此它似乎无法区分其他对象和您自己。在字节码中,这是可以理解的,但 JIT 可以做得更多。

检查Android源代码,我没有看到JIT会自动消除这种情况下的空检查(即当您访问时this)。它在已经空检查的 Dalvik 寄存器的基本块中被消除,很好,但是(对我来说)它似乎也可以被消除this访问(即使它是基本块的第一条指令,或任何指令,因为this不能为空)。

我错过了什么?是出于安全/运行时类型安全的原因吗?或者我只是忽略了源代码?为什么 VM (JIT) 不能this以独特的方式处理?(我理解本机代码显然不能,因为this内存地址就像其他任何东西一样。)


编辑:据我所见,每次基本块在 dvm 中结束时,都会清除“已检查空”标志。我要说的是,保存的寄存器的“已检查空”标志可以预先设置为 1(即使在基本块之间的转换期间也不需要清除该值)。

0 投票
8 回答
490319 浏览

javascript - JavaScript 空值检查