迷茫的undefined和null

什么Javascript竟然有两个表示空的值?

这大概就是我知道null和undefinde时的真实反应了,因为除了JS我从没有在任何一门其它的编程语言中发现这么奇葩的一点

以正常人来看这不就是多此一举吗?

有人询问过Brendan Eich为什么这样做他坦率的直言:当初没有设计好。而补救措施则是给出一个正确使用这两种定义的规范。慢慢的开始null和undefined有了区别

  • 它们从语法上来看都是没有赋值
  • 从规范上来看,null的使用为我定义了一个对象但现在还不想赋值,所以我给一个null
  • undefined为我定义了一个非对象但我当前也不想赋值

所以我们开始这样写:

let a

let object = null

这不是语法的硬性要求,但这是被推荐的使用方法,当然这两个东西在语法上来看都表示 ‘我什么也没有’

 

关键字:null——对象 undefined——非对象

 

posted on 2019-02-17 16:58  城外三石  阅读(77)  评论(0)    收藏  举报

导航