Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Javascript中null和undefined的区别?

Javascript中null和undefined的区别?

原创
作者头像
IT工作者
修改于 2022-04-02 08:29:52
修改于 2022-04-02 08:29:52
51200
代码可运行
举报
文章被收录于专栏:程序技术知识程序技术知识
运行总次数:0
代码可运行

在 javascript 中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let name = null;
let age;

其实做了以下几件事:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let name     // 声明变量,我创建了一个变量叫 name
name = null; // 变量赋值,我给这个变量给了一个值,这个值就是 null

let age;     // 声明变量,我创建了另一个变量叫 age

那么在以下场景的使用中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
console.log(name);
console.log(age);
console.log(gender);

你会得到

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验