大多是计算机语言只有个表示‘无’的值,但是js 有两个 null 和 undefined, 两种数据类型很像,而且相等运算符上两者相等,所以感觉两种数据类型都是一个东西么,那么到底有什么区别呢
1.null 和 undefined在js语义里面有明确区别
null: 表示一个值被定义了,定义为空值
undefined: 表示根本不存在定义
所以设置一个值为 null 是合理的,
如: obj.value = null,
但是设置成一个undefined 的值是不合理的,
比如 obj.value = undefined , 因为 undefined表示这个值根本不存在,不能直接赋值undefined
2.判断一个值不存在
所以判断一个值不存在, 就是判断 是否真等于 undefined
value === undefined
这种语义在 JSON 中被强化,标准中不存在undefined 这个类型,但是存在表示 null 的空值,在一些库中的深拷贝 会 忽略 undefined 的值,但不会忽略 null
3.js 中存在 undefined 和 null 也是合理的
首先java 中不存在undefined 也是很合理的: 因为java 是一种静态语言类型,对于java 说不可能存在一个“不存在”的成员,不存在的话就编译失败了,就会报错,所以用null表示空值;但是javascript 是一个动态语言,只有在运行时候才知道,除了存在空值null外,还可能根本就不存在,所以就要用一个表示对某个变量取不到值的数据类型,所以需要设立一个undefined这样的数据类型,所以需要掌握undefined 和 null的语义
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!