有趣的非空判断函数 + ?? 介绍

2024-08-29 01:44

本文主要是介绍有趣的非空判断函数 + ?? 介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分享一个好玩的函数,用于统一判断一个数据是否为“合法数据”,即判断该数据既不是空字符串,也不是 undefined 和 null。

1. 非空判断

const isLegalData = (data) => {if (((data ?? '') !== '')) {return true;}return false;
};

解析一下:data ?? ' '

使用空值合并操作符 ??,它会检查 data 的值:

- 如果 data 是 null 或 undefined,则使用空字符串 ' ' 代替,返回 false;

- 如果 data 是 空字符串,返回 false;

- 如果 data 是其他值,则保持 data 的原始值,返回 true。

console.log(isLegalData(undefined)); // false
console.log(isLegalData(null)); // false
console.log(isLegalData('')); // false
console.log(isLegalData('Hello')); // true
console.log(isLegalData(0)); // true
console.log(isLegalData(false)); // true

说到这,那就简单了解一下 空值合并操作符 --- ?? 吧。

2. 基本介绍

空值合并操作符是 JS 中一个非常实用的逻辑运算符,用于处理 null 和 undefined 值。它允许我们提供一个默认值,当一个表达式的结果是 null 或 undefined 时,就会返回这个默认值。

const value = someVariable ?? defaultValue;

- someVariable:被检查的变量或表达式。

- defaultValue:当 someVariable 为 null 或 undefined 时,返回的默认值。

举个 🌰

const username = null;
const displayName = username ?? 'Monica';
console.log(displayName); // 输出: Monica

3. ?? 与 || 的区别

在 JS 中,逻辑或运算符 || 也常常用于提供默认值,它不会对 null 和 undefined 做特殊处理,而是对其他的“假值”(如:0、'' 、false、NaN、null、undefined)进行统一处理,视为 false。

const value1 = 0 || 'default';
console.log(value1); // 输出: defaultconst value2 = 0 ?? 'default';
console.log(value2); // 输出: 0

- || :返回第一个“真值”

- ?? :只对 null 和 undefined 处理

如果我们只想处理 null 和 undefined,而保留其他“假值”,应该使用 ??。

4. 注意事项

4.1 优先级

在使用 ?? 时,必须注意运算符的优先级,特别是在与其他逻辑运算符(如 || 和 &&)混合使用时。

如果期望 || 优先执行:

const result = (someValue || otherValue) ?? defaultValue;

如果期望 ?? 优先执行:

const result = someValue || (otherValue ?? defaultValue);
4.2 使用环境

空值合并操作符是 ECMAScript 2020 (ES11) 中的新特性,因此需要确保在现代浏览器或支持 ES2020 的 JavaScript 环境中使用。

5. 实际 🌰

如果在实际开发中,某些配置项可以是 0 或者 空字符串,但当这些配置项是 null 或 undefined 时,则需要提供一个默认值。

const config = {maxRetries: 0,timeout: undefined,cacheSize: null,
};// 正确使用空值合并操作符
const retries = config.maxRetries ?? 5; // 输出: 0(因为 maxRetries 是有效的值)
const timeout = config.timeout ?? 100; // 输出: 100(因为 timeout 是 undefined)
const cache = config.cacheSize ?? 365; // 输出: 365(因为 cacheSize 是 null)

在这个例子中,如果使用 || ,即使 maxRetries 为 0,也会被替换为 5,不是我们想要的结果,所有这种情况下,?? 会更加合适。

空值合并操作符 ?? 对处理 null 和 undefined 非常有帮助,它与传统的 || 运算符相比,更加精确和安全。

这篇关于有趣的非空判断函数 + ?? 介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1116485

相关文章

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

python中update()函数的用法和一些例子

《python中update()函数的用法和一些例子》update()方法是字典对象的方法,用于将一个字典中的键值对更新到另一个字典中,:本文主要介绍python中update()函数的用法和一些... 目录前言用法注意事项示例示例 1: 使用另一个字典来更新示例 2: 使用可迭代对象来更新示例 3: 使用

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

Python 函数详解:从基础语法到高级使用技巧

《Python函数详解:从基础语法到高级使用技巧》本文基于实例代码,全面讲解Python函数的定义、参数传递、变量作用域及类型标注等知识点,帮助初学者快速掌握函数的使用技巧,感兴趣的朋友跟随小编一起... 目录一、函数的基本概念与作用二、函数的定义与调用1. 无参函数2. 带参函数3. 带返回值的函数4.

MySQL中DATE_FORMAT时间函数的使用小结

《MySQL中DATE_FORMAT时间函数的使用小结》本文主要介绍了MySQL中DATE_FORMAT时间函数的使用小结,用于格式化日期/时间字段,可提取年月、统计月份数据、精确到天,对大家的学习或... 目录前言DATE_FORMAT时间函数总结前言mysql可以使用DATE_FORMAT获取日期字段

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1