if(value == null) vs if(null == value)
if(value == null) vs if(null == value)
可能重复:
为什么人们经常看到;null!=变量”而不是“变量!=null";在C#中?
这更多是一个令人好奇的问题,这两种说法之间是否存在性能差异。
if(value == null)
和
if(null == value)
值得注意的是,我使用了c#、PHP&javascript经常出现,我记得有人说if(null==value(更快,但真的吗?
我很快将开始开发一个应用程序,该应用程序将解析万亿字节范围内的大量数据,因此即使性能提升在毫秒范围内,也可能产生影响。有人有什么想法吗?
无论哪种方式,我都怀疑是否存在可衡量的性能优势。我敢打赌,告诉你这件事的人没有任何硬数据。
据我所知,这是一个历史文物,是C和C++用来防止这个错误的技术:
if (c = null) {
}
如果你反转参数,编译器会发现这个问题,因为你不能给null赋值。
我介绍了这两个超过1亿次的迭代。
if(value==null(
--6.85175704956秒(每个68.5纳秒(
if(null==value(
--6.75543808937秒(每个67.5纳秒(
因此,1纳秒是否足够增益取决于你。
绝对没有预期的性能差异。
使用(丑陋的(形式(if null == value)
的唯一原因是为了避免C/C++特定的打字错误:
if (value = null) // compiles but _assigns_ null to value and always returns false
... // never executed
我认为可以公平地预期不会有任何差异:这是一个非常简单的情况,如果有差异,编译器无论如何都会确保生成最快的版本。
是的,我也认为不会有什么不同,但我个人更喜欢if(value == null)
这样的优化最多只会给你一个时钟周期(我不知道为什么(。但最有可能的是,如果它更好,那么编译器会为您优化它。
将任何文字(如null
(放在第一位的原因是,如果使用=
而不是==
,则不会意外地分配值。不过,我个人确实觉得它可读性较差。
我不确定它是否更快,但有些语言允许您在if语句中赋值,而不会发出警告,所以如果您这样做:
if (value = null)
错误地可以擦除变量,而另一种方法不会在执行路径上进一步引发奇怪的问题。
- 可以't让我的if语句处理js中的html表单输入
- 如果 a 为 false,则 if(a) === if(false)
- 数组在递归方法中设置为null
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 正在尝试使用if和else添加类,但无法正常工作
- 在PHP中使用javascript更改页面标题'if'
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 无法获取属性'selectedIndex'的未定义引用或null引用
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- if(foo!==null)的计算结果为true,即使foo为null
- Javascript变量为null,但进入if语句
- javascript if Null check
- jQuery IF语句,它查找所有具有null值的输入并删除相应的元素
- jQuery If已设置,或者If不为null
- 条件必选getInitialState- if value为null
- if(value == null) vs if(null == value)
- IF null ELSE -正确的IF ELSE语法
- 简写if ?返回:null
- 带有null条件错误的Javascript IF语句