iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript中null的介绍以及用法是怎样的
  • 599
分享到

JavaScript中null的介绍以及用法是怎样的

2024-04-02 19:04:59 599人浏览 薄情痞子
摘要

本篇文章给大家分享的是有关javascript中null的介绍以及用法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScrip

本篇文章给大家分享的是有关javascript中null的介绍以及用法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

JavaScript有2种类型:基本类型(string, booleans number, symbol)和对象。

对象是复杂的数据结构js 中最简单的对象是普通对象:一组键和关联值:

let myObject = {   name: '前端小智' }

但是在某些情况下无法创建对象。 在这种情况下,JS 提供一个特殊值null —表示缺少对象。

let myObject = null

这里我们将了解到有关JavaScript中null的所有知识:它的含义,如何检测它,null与undefined之间的区别以及为什么使用null造成代码维护困难。

1. null的概念

JS 规范说明了有关null的信息:

值 null 特指对象的值未设置,它是 JS 基本类型 之一,在布尔运算中被认为是falsy。

例如,函数greetObject()创建对象,但是在无法创建对象时也可以返回null:

function greetObject(who) {   if (!who) {     return null;   }   return { message: `Hello, ${who}!` }; }  greetObject('Eric'); // => { message: 'Hello, Eric!' } greetObject();       // => null

但是,在不带参数的情况下调用函数greetObject()时,该函数返回null。 返回null是合理的,因为who参数没有值。

2. 如何检查null

检查null值的好方法是使用严格相等运算符:

const missinGobject = null; const existingObject = { message: 'Hello!' };  missingObject  === null; // => true existingObject === null; // => false

missingObject === null的结果为true,因为missingObject变量包含一个null 值。

如果变量包含非空值(例如对象),则表达式existObject === null的计算结果为false。

2.1 null 是虚值

null与false、0、''、undefined、NaN都是虚值。如果在条件语句中遇到虚值,那么 JS 将把虚值强制为false。

Boolean(null); // => false  if (null) {   console.log('null is truthy') } else {   console.log('null is falsy') }

2.2 typeof null

typeof value运算符确定值的类型。 例如,typeof 15是'number',typeof  {prop:'Value'}的计算结果是'object'。

有趣的是,type null的结果是什么

typeof null; // => 'object'

为什么是'object',typoef null为object是早期 JS 实现中的一个错误。

要使用typeof运算符检测null值。 如前所述,使用严格等于运算符myVar === null。

如果我们想使用typeof运算符检查变量是否是对象,还需要排除null值:

function isObject(object) {   return typeof object === 'object' && object !== null; }  isObject({ prop: 'Value' }); // => true isObject(15);                // => false isObject(null);              // => false

3. null 的陷阱

null经常会在我们认为该变量是对象的情况下意外出现。然后,如果从null中提取属性,JS 会抛出一个错误。

再次使用greetObject()函数,并尝试从返回的对象访问message属性:

let who = '';  greetObject(who).message;  // throws "TypeError: greetObject() is null"

因为who变量是一个空字符串,所以该函数返回null。 从null访问message属性时,将引发TypeError错误。

可以通过使用带有空值合并的可选链接来处理null:

let who = ''  greetObject(who)?.message ?? 'Hello, Stranger!' // => 'Hello, Stranger!'

4. null 的替代方法

当无法构造对象时,我们通常的做法是返回null,但是这种做法有缺点。在执行堆栈中出现null时,刚必须进行检查。

尝试避免返回 null 的做法:

  • 返回默认对象而不是null

  • 抛出错误而不是返回null

回到开始返回greeting对象的greetObject()函数。缺少参数时,可以返回一个默认对象,而不是返回null:

function greetObject(who) {   if (!who) {     who = 'Stranger';   }   return { message: `Hello, ${who}!` }; }  greetObject('Eric'); // => { message: 'Hello, Eric!' } greetObject();       // => { message: 'Hello, Stranger!' }

或者抛出一个错误:

function greetObject(who) {   if (!who) {     throw new Error('"who" argument is missing');   }   return { message: `Hello, ${who}!` }; }  greetObject('Eric'); // => { message: 'Hello, Eric!' } greetObject();       // => throws an error

这两种做法可以避免使用 null。

5. null vs undefined

undefined是未初始化的变量或对象属性的值,undefined是未初始化的变量或对象属性的值。

let myVariable;  myVariable; // => undefined

null和undefined之间的主要区别是,null表示丢失的对象,而undefined表示未初始化的状态。

严格的相等运算符===区分null和undefined :

null === undefined // => false

而双等运算符==则认为null和undefined 相等

null == undefined // => true

我使用双等相等运算符检查变量是否为null 或undefined:

function isEmpty(value) {   return value == null; }  isEmpty(42);                // => false isEmpty({ prop: 'Value' }); // => false isEmpty(null);              // => true isEmpty(undefined);         // => true

6. 总结

null是JavaScript中的一个特殊值,表示丢失的对象,严格相等运算符确定变量是否为空:variable === null。

typoef运算符对于确定变量的类型(number, string, boolean)很有用。  但是,如果为null,则typeof会产生误导:typeof null的值为'object'。

null和undefined在某种程度上是等价的,但null表示缺少对象,而undefined未初始化状态。

以上就是JavaScript中null的介绍以及用法是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网JavaScript频道。

--结束END--

本文标题: JavaScript中null的介绍以及用法是怎样的

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript中null的介绍以及用法是怎样的
    本篇文章给大家分享的是有关JavaScript中null的介绍以及用法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScrip...
    99+
    2024-04-02
  • mongodb的介绍以及安装用法是怎样的
    本篇文章为大家展示了mongodb的介绍以及安装方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、mongodb的介绍1.什么是MongoDBMongoDB是由...
    99+
    2024-04-02
  • JavaScript语法介绍是怎样的
    本篇文章给大家分享的是有关JavaScript语法介绍是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScript 是一个 脚本...
    99+
    2024-04-02
  • Linux Deepin2014的介绍以及特点是怎样的
    Linux Deepin2014的介绍以及特点是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。关于深度(Deepin),大家了解的更多应该是早期的深度Windows修...
    99+
    2023-06-13
  • JavaScript对象符号JSON的简介以及用法是怎样的
    本篇文章给大家分享的是有关JavaScript对象符号JSON的简介是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 介绍一段...
    99+
    2024-04-02
  • Linux的内存中Swap和Cache以及Buffer的介绍是怎样的
    Linux的内存中Swap和Cache以及Buffer的介绍是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 total:总内存大小。 used:已经...
    99+
    2023-06-15
  • JavaScript中的Object介绍及作用
    本篇内容介绍了“JavaScript中的Object介绍及作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • JavaScript中的Map、WeakMap、Set和WeakSet介绍是怎样的
    今天就跟大家聊聊有关JavaScript中的Map、WeakMap、Set和WeakSet介绍是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。...
    99+
    2024-04-02
  • JavaScript内存管理介绍是怎样的
    本篇文章为大家展示了JavaScript内存管理介绍是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。大多数时候,我们在不了解有关内存管理的知识下也只开发,因为...
    99+
    2024-04-02
  • Javascript 高级手势使用的介绍是怎样的
    这期内容当中小编将会给大家带来有关Javascript 高级手势使用的介绍是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  在IE10中新加入的对高级用...
    99+
    2024-04-02
  • SpringBoot整合JWT的介绍以及用法
    本篇内容主要讲解“SpringBoot整合JWT的介绍以及用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot整合JWT的介绍以及用法”吧!目录JWTJWT登录执行流程图为什么...
    99+
    2023-06-20
  • 关于JavaScript 的对象的介绍是怎样的
    本篇文章为大家展示了关于JavaScript 的对象的介绍是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 对象方法 & this方法只是保存函数...
    99+
    2024-04-02
  • HTML5 SVG中的图形绘制介绍及使用是怎样的
    本篇文章给大家分享的是有关HTML5 SVG中的图形绘制介绍及使用是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。基本形状SVG提供了很...
    99+
    2024-04-02
  • mysql中的MMM的介绍以及部署方法
    这期内容当中小编将会给大家带来有关mysql中的MMM的介绍以及部署方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、 MMM 简介:MMM 即 Multi-Mast...
    99+
    2024-04-02
  • Monyog的介绍是怎样的
    本篇文章为大家展示了Monyog的介绍是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、工具强大可以直接定位sql语句在做什么事情;Mysql日志MONyo...
    99+
    2024-04-02
  • JavaScript中的遍历用法介绍
    本篇内容介绍了“JavaScript中的遍历用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!对象遍历...
    99+
    2024-04-02
  • HTML5中对body是怎样介绍的
    HTML5中对body是怎样介绍的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 body元素就是就是html文...
    99+
    2024-04-02
  • MySQL高可用集群的介绍以及用法
    MySQL高可用集群的介绍以及用法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1 MMM概述1.1 关于mysql-mmmM...
    99+
    2024-04-02
  • HTML5语法变化的介绍是怎样的
    今天就跟大家聊聊有关HTML5语法变化的介绍是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 1、标签不再区分大...
    99+
    2024-04-02
  • MySQL的多实例介绍及配置是怎样的
    这篇文章将为大家详细讲解有关MySQL的多实例介绍及配置是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.什么是MySQL多实例 &nbs...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作