在 javascript 中
let name = null;
let age;
其实做了以下几件事:
let name // 声明变量,我创建了一个变量叫 name
name = null; // 变量赋值,我给这个变量给了一个值,这个值就是 null
let age; // 声明变量,我创建了另一个变量叫 age
那么在以下场景的使用中
console.log(name);
console.log(age);
console.log(gender);
你会得到
console.log(name); // null
console.log(age); // undefined
console.log(gender); // Uncaught ReferenceError: gender is not defined
undefined:未赋值,可能忘了赋值,可能是暂时没有值,之后会赋值。
null:空值,一般主动赋值才会出现。表示主观上这个变量的值就是空的,比如你去获取蒙奇 D 鸣人的资料,这人不存在,那么返回的值就应该是 null。
很多语言都只有一个类似 null 的空值, JavaScript 中却同时存在 undefined 与 null 的原因应该是历史遗留问题。 JavaScript 早期的设计就经常不严谨,换言之这就是个脑壳一热出现的产物,后面发现太坑太绕了又不好改。
null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。
当声明的变量还未被初始化时,变量的默认值为undefined。
null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
null表示"没有对象",即该处不应该有值。典型用法是:
(1) 作为函数的参数,表示该函数的参数不是对象。
(2) 作为对象原型链的终点。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有