迷茫的undefined和null
什么Javascript竟然有两个表示空的值?
这大概就是我知道null和undefinde时的真实反应了,因为除了JS我从没有在任何一门其它的编程语言中发现这么奇葩的一点
以正常人来看这不就是多此一举吗?
有人询问过Brendan Eich为什么这样做他坦率的直言:当初没有设计好。而补救措施则是给出一个正确使用这两种定义的规范。慢慢的开始null和undefined有了区别
- 它们从语法上来看都是没有赋值
- 从规范上来看,null的使用为我定义了一个对象但现在还不想赋值,所以我给一个null
- undefined为我定义了一个非对象但我当前也不想赋值
所以我们开始这样写:
let a
let object = null
这不是语法的硬性要求,但这是被推荐的使用方法,当然这两个东西在语法上来看都表示 ‘我什么也没有’
关键字:null——对象 undefined——非对象
浙公网安备 33010602011771号