我写JavaScript已经有很长一段时间了,我从来没有理由使用null
。似乎undefined
总是更可取的,并且以编程的方式服务于相同的目的。使用null
而不是undefined
的一些实际原因是什么
发布于 2011-07-07 09:07:00
未定义是指事物的概念不存在;它没有类型,并且以前从未在该作用域中被引用过;null是已知事物存在但没有值的地方。
发布于 2021-02-06 04:47:03
在JavaScript中,值null
表示有意不存在任何对象值。null
表示缺少标识,表示变量指向无对象。
全局undefined
属性表示原始值undefined
。undefined
是自动分配给变量的原始值。undefined
的意思是说引用不存在。
发布于 2016-06-23 20:06:12
我完全不同意使用null或未定义的用法是不必要的。未定义是使整个原型链过程保持活力的东西。所以只有null的编译器不能检查这个属性是否等于null,或者它没有在端点原型中定义。在其他动态类型语言中(F.E.Python)如果你想访问未定义的属性,它会抛出异常,但对于基于原型的语言,编译器也应该检查父原型,这里是未定义的最需要的地方。
使用null的全部含义是将变量或属性与对象绑定,该对象是单例的,并且具有空的含义,并且null的使用也具有性能目的。这两个代码有不同的执行时间。
var p1 = function(){this.value = 1};
var big_array = new Array(100000000).fill(1).map((x, index)=>{
p = new p1();
if(index > 50000000){
p.x = "some_string";
}
return p;
});
big_array.reduce((sum, p)=> sum + p.value, 0)
var p2 = function(){this.value = 1, p.x = null};
var big_array = new Array(100000000).fill(1).map((x, index)=>{
p = new p2();
if(index > 50000000){
p.x = "some_string";
}
return p;
});
big_array.reduce((sum, p)=> sum + p.value, 0)
https://stackoverflow.com/questions/6604749
复制相似问题