首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaScript中使用null而不是undefined的原因是什么?

在JavaScript中使用null而不是undefined的原因是什么?
EN

Stack Overflow用户
提问于 2011-07-07 09:01:32
回答 7查看 46.6K关注 0票数 129

我写JavaScript已经有很长一段时间了,我从来没有理由使用null。似乎undefined总是更可取的,并且以编程的方式服务于相同的目的。使用null而不是undefined的一些实际原因是什么

EN

回答 7

Stack Overflow用户

发布于 2011-07-07 09:07:00

未定义是指事物的概念不存在;它没有类型,并且以前从未在该作用域中被引用过;null是已知事物存在但没有值的地方。

票数 15
EN

Stack Overflow用户

发布于 2021-02-06 04:47:03

在JavaScript中,值null表示有意不存在任何对象值。null表示缺少标识,表示变量指向无对象。

全局undefined属性表示原始值undefinedundefined是自动分配给变量的原始值。undefined的意思是说引用不存在。

票数 2
EN

Stack Overflow用户

发布于 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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6604749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档