返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS中null和undefined的区别
  • 380
分享到

JS中null和undefined的区别

JS null undefined 2023-05-20 05:05:17 380人浏览 薄情痞子
摘要

目录前言定义异同点实际应用总结1.js 中如何判断 undefined2.JS 中如何判断 null前言 在javascript中,null和undefined是两个常见的数据类型,

前言

javascript中,null和undefined是两个常见的数据类型,但总是在使用时由于对两者区别不清而导致错误,今天就让我们一起来看看这两种类型的区别。

定义

首先让我们来看看两者的定义: null是JavaScript中的一个特殊值,表示“空值”或“无值”。当我们想要表示某个变量不包含任何值时,就可以将其设置为null。 undefined是JavaScript中的另一种特殊值,表示“未定义的值”。当我们声明一个变量但没有给它赋值时,该变量的值就是undefined。

异同点

相同点:

  • undefined和null被转换为布尔值的时候,两者都为false
  • undefined==null,结果为true都表示一个空值,两者判断值相等上是一样的

尽管nullundefined都表示“无值”,但它们之间还是有一些区别的。

不同点:

  • null表示一个空对象指针,而undefined表示一个未定义的值。
  • 当我们声明一个变量但没有给它赋值时,该变量的值就是undefined。当我们想要明确地表示某个变量不包含任何值时,就可以将其设置为null。
  • 如果我们使用typeof运算符检查一个null值时,返回的结果是“object”。而如果检查一个未声明的变量时,返回的结果是undefined。
  • undefined不是关键字,而null是关键字
  • undefined本质上是window的一个属性,而null是一个对象

接下来就让我们来结合一些小小的例子来进行理解:

let firval = null;
let secval;
console.log(firval == secval); // 输出:true
console.log(firval === secval); // 输出:false
console.log(firval); // 输出:null
console.log(secval); // 输出:undefined
console.log(typeof firval); // 输出:object
console.log(typeof secval); // 输出:undefined

在上面的示例中,我们声明了两个变量firval和secval。firval的值被设置为null,而secval没有被赋值,因此它的值是undefined。当我们使用console.log()函数打印这两个变量时,分别输出了null和undefined。当我们使用typeof运算符检查这两个变量的类型时,分别输出了object和undefined,同时需要注意null与undefined本质上是不同,当使用双等时输出为true相信大家应该都有所了解,没错,因为在 JavaScript 里,双等号判断相等时会进行隐式类型转换,所以是不严格的。

实际应用

在实际的开发中,我们经常需要使用null和undefined在某些特殊的情景。例如,当我们从服务器获取数据时,如果数据不存在,我们可能会将返回值设置为null或undefined。这样做可以帮助我们更好地处理数据并避免出现错误。

以下便是一个null应用场景:

function getData() {
  let data = null;
  // 如果数据不存在,返回null
  if (!data) {
    return null;
  }
  // 处理数据
  // ...
  // 如果处理成功,返回处理结果
  return result;
}

在上面的示例中,我们定义了一个名为getData的函数,用于获取数据并处理它。如果数据不存在,我们将返回值设置为null。否则,我们将处理数据并返回处理结果。

除此之外,null还有一个前端人员都熟悉的作用:作为对象原型链的终点

对于undefined的作用,这里大致列举以下几种:

  • 如果变量声明了,但没有赋值,它就等于undefined 。

  • 函数中的参数没有给时,该参数就等于undefined 。

  • 对象没有进行赋值,该属性的值为undefined。

  • 当函数没有返回值时,默认返回undefined。

总结

在本文中,我们简单探讨了JavaScript中的null和undefined类型,需要记住的是,null表示一个空对象指针,而undefined表示一个未定义的值。当我们想要明确地表示某个变量不包含任何值时,就可以将其设置为null。而当我们声明一个变量但没有给它赋值时,该变量的值就是undefined。

补:

1.JS 中如何判断 undefined

JavaScript 中有两个特殊数据类型:undefined 和 null,下节介绍了 null 的判断,下面谈谈 undefined 的判断。

以下是不正确的用法:

var exp = undefined;
if (exp == undefined)
{
    alert("undefined");
}

exp 为 null 时,也会得到与 undefined 相同的结果,虽然 null 和 undefined 不一样。注意:要同时判断 undefined 和 null 时可使用本法。

var exp = undefined;
if (typeof(exp) == undefined)
{
    alert("undefined");
}

以下是正确的用法:

var exp = undefined;
if (typeof(exp) == "undefined")
{
    alert("undefined");
}

2.JS 中如何判断 null

以下是不正确的用法:

var exp = null; 
if (exp == null) 
{ 
alert(“is null”); 
}

exp 为 undefined 时,也会得到与 null 相同的结果,虽然 null 和 undefined 不一样。注意:要同时判断 null 和 undefined 时可使用本法。

var exp = null; 
if (!exp) 
{ 
alert(“is null”); 
}

如果 exp 为 undefined 或者数字零,也会得到与 null 相同的结果,虽然 null 和二者不一样。注意:要同时判断 null、undefined 和数字零时可使用本法。

var exp = null; 
if (typeof(exp) == “null”) 
{ 
alert(“is null”); 
}

为了向下兼容,exp 为 null 时,typeof 总返回 object。

var exp = null; 
if (isNull(exp)) 
{ 
alert(“is null”); 
}

JavaScript 中没有 isNull 这个函数。

以下是正确的用法:

var exp = null; 
if (!exp && typeof(exp)!=”undefined” && exp!=0) 
{ 
alert(“is null”); 
}

 到此这篇关于JS中null和undefined的区别的文章就介绍到这了,更多相关JS null undefined内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JS中null和undefined的区别

本文链接: https://lsjlt.com/news/214005.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JS中null和undefined的区别
    目录前言定义异同点实际应用总结1.JS 中如何判断 undefined2.JS 中如何判断 null前言 在JavaScript中,null和undefined是两个常见的数据类型,...
    99+
    2023-05-20
    JS null undefined
  • JS基础中undefined与null的区别是什么
    这期内容当中小编将会给大家带来有关JS基础中undefined与null的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在JavaScript开发中,被人问到:...
    99+
    2024-04-02
  • javascript中undefined与null的区别
      null和undefined基本是同义的,只有一些细微的差别。 null表示"没有对象",即该处不应该有值。典型用法是: (1) 作为函数的参数,...
    99+
    2024-04-02
  • 一文让你彻底弄懂js中undefined和null的区别
    目录前言一、基本概念1、undefined2、null二、简单区别三、表现形式1、typeof2、== 与 ===3、Object.prototype.toString.call4、...
    99+
    2024-04-02
  • JavaScript中null和undefined的区别是什么
    这篇文章给大家介绍JavaScript中null和undefined的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。网上有很多关于null和undefined区别的论述,看似讲了很多知识,但又好像没什么用,无...
    99+
    2023-06-26
  • JavaScript中null和undefined有哪些区别
    小编给大家分享一下JavaScript中null和undefined有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!nu...
    99+
    2024-04-02
  • javascript中undefined与null的区别有哪些
    今天小编给大家分享一下javascript中undefined与null的区别有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-02
  • Typescript中null和undefined怎么用
    这篇文章主要介绍Typescript中null和undefined怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!null和undefined在javascript中null表示...
    99+
    2024-04-02
  • 【MySQL】 IS NOT NULL 和 != NULL 的区别?
    背景 最近在开发小伙伴的需求,遇到了一个数据库统计的问题, is not null 结果正确 !=null 结果就不对,然后就激发了获取真理的想法,那必须的查查 咋回事嘞? 开整 在用MySQL的过...
    99+
    2023-09-11
    mysql 数学建模 数据库
  • oracle中的null和空的区别
    null 表示缺失或未知,而空表示空字符串或零值。在查询中,null 与任何值都不相等,空值与相同类型的空值相等;字段必须显式定义为允许 null,而空值可以存在于任何字段中。理解 nu...
    99+
    2024-05-03
    oracle
  • Javascript中Null和undefined的简单理解
    目录前言undefinedNull附:实际应用总结前言 在 JavaScript 中有两种表达“无”的方式,那就是使用undefined和null。 unde...
    99+
    2024-04-02
  • mysql中null与(null的区别
    mysql 中 null 和 (null) 区别如下:null 表示未知值,而 (null) 表示明确空值。null 不占用存储空间,而 (null) 占用一个字节。null 不等于任何...
    99+
    2024-05-01
    mysql
  • mysql中null与(null)的区别
    在 mysql 中,null 代表空值,不占用空间,而 (null) 是空字符串值,占用 1 字节空间。它们的区别包括:存储方式不同、比较方式不同、插入方式不同、聚合函数处理方式不同、索...
    99+
    2024-05-01
    mysql 聚合函数
  • mysql中null和空值的区别
    null表示未知且无意义的值,而空值表示未赋值或未初始化的值。两者的差异在于:语义差异、数据库处理方式、查询优化影响、数据完整性影响,可通过mysql提供的操作符区分。 MySQL 中...
    99+
    2024-05-01
    mysql
  • mysql中null和空值的区别
    null表示未知且无意义的值,而空值表示未赋值或未初始化的值。两者的差异在于:语义差异、数据库处理方式、查询优化影响、数据完整性影响,可通过mysql提供的操作符区分。 MySQL 中...
    99+
    2024-05-01
    mysql
  • MySQL中的NULL和空串的区别
    本篇内容主要讲解“MySQL中的NULL和空串的区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL中的NULL和空串的区别”吧! ...
    99+
    2024-04-02
  • oracle中不等于null和 is not null区别
    not null 是列约束,禁止 null 值插入;is not null 是检查操作符,评估列是否不包含 null 值。 Oracle 中 NOT NULL 和 IS NOT NUL...
    99+
    2024-05-08
    oracle
  • 详解JS中? ?和?. 和||的区别
    目录1、 与 || 的区别2、 和 . 的区别1、 与 || 的区别 1)相同点: 和 || 的用法相同,都是前后是值,中间用符号连接,根据前面的值来判断最终是返回前面的值还是后面...
    99+
    2024-04-02
  • sql中null和0有区别吗
    sql 中 null 和 0 是不同的值:null 表示未知或不存在的值,0 表示数字值零。null 不能与任何值比较,参与算术运算时返回 null;0 可以比较和参与算术运算。null...
    99+
    2024-05-02
  • 关于ObjectUtils.isEmpty() 和 null 的区别
    目录ObjectUtils.isEmpty()和null区别分配内存和赋值的区别Spring5.3之后StringUtils.isEmpty被弃用解决办法ObjectUtils.is...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作