js,ts中简写符号大全

devtools/2024/10/16 2:28:22/

falsy 值(虚值):是在布尔值Boolean上下文中认定为 false 的值。在 JavaScript 中只有 8 个 falsy 值,包括undefined、null、false、空字符串 (双引号 ""、单引号’’、反引号 ``)、NaN、0。

nullish 值:要么是 null 要么是 undefined 。nullish 值总是 falsy 。

一. js中符号 
1.   || 

        如果||前面的值是0 '' false null undefined NaN其中的任意一种,则直接返回||后面的值 

function(obj){var a = obj || {}}// 等价于 =>>function(obj){var a;if( obj === 0 || obj === "" || obj === false || obj === null || obj === undefined || isNaN(obj)){a = {}} else {a = obj;}}
 2.   ??

        如果||前面的值是null undefined 其中的任意一种,则直接返回??后面的值 

function(obj){var a = obj ?? {}}// 等价于 =>>function(obj){var a;if( obj === null || obj === undefined){a = {}} else {a = obj;}}
 3.  ?. 可选链

在未定义属性时使用可选链运算符,undefined将返回而不是错误。这可以防止你的代码崩溃 

const personal = {name: "lwl",address: {state: "New York"},}// 使用可选链操作符console.log(personal?.address?.ZIPCode) // 输出:undefinedpersonal.array?.map()// 返回undefined,不会崩溃
 4.  !!

 将表达式强制转化为boolean值运算,运算结果为true或者false
 falsy值 返回 false,空数组返回true

5.  ??=

逻辑空赋值运算符(x ??= y)仅在 x 是 nullish(null 或 undefined) 时对其赋值

 const a = { duration: 50 };a.duration ??= 10;console.log(a.duration);// expected output: 50

6. !!=    &&=
逻辑或赋值运算符(x !!= y)仅在 x 是 假值(Boolean值) 时对其赋值
逻辑或赋值运算符(x &&= y)仅在 x 是 真值 时对其赋值

 var a = 0;a ||= 10;console.log(a); //输出10var a = 1;a &&= 10;console.log(a); //输出10
 二.ts 中 ? !

 ts比js多了2个符号 即?  !

1.? 

  表示该属性或参数为可选项

  interface IDemo {x?: number   // 参数为可选项}
2. !

 表示类型推断排除null、undefined,用于属性后面

// 由于x是可选的,因此parma.x的类型为number | undefined,无法传递给number类型的y,因此需要用x!interface IDemo {x?: number   // 参数为可选项}let y:number  // 参数为number类型const demo = (parma: IDemo) => {y = parma.x!  // 变量值可空return y}const personal = {name: "lwl",address: {state: "New York"},    }personal.array!.map()


http://www.ppmy.cn/devtools/4574.html

相关文章

c++通过运算符重载实现的日期类(源码)

通过我们对运算符重载的学习&#xff0c;我们可以由此实现一个日期类。 头文件&#xff1a; #pragma once #include<iostream> #include<assert.h> using std::endl; using std::cout; using std::cin; using std::ostream; using std::istream;class Date{//声明…

口型动画论文2:《基于语音驱动的表情动画设计与实现》

说明 本文是北京邮电大学的硕士毕业论文&#xff0c;作者是郭梦婷。由于是艺术硕士&#xff0c;所以本文没有罗列很多公式&#xff0c;而是从动画创作的角度来写如何根据语音设计动画人物的嘴型及表情。本文作者行文缜密、轻松&#xff0c;举得例子都是一些热播的动画和电影&a…

ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年4月&#xff0c;更强版本的ChatGPT4.0上线&#xff0c;文本、语音、图像等多模态交互方式使其在…

Vue3: toRefs与toRef的基本使用

一、前言 本文主要介绍toRefs与toRef的基本使用。 二、内容 1、基本概念 作用: toRefs与toRef可以将一个响应式对象中的每一 个属性&#xff0c;转换为ref对象&#xff1b;不同 toRefs与toRef功能一致&#xff0c;但toRefs可以批量转换。 2、toRefs 如果把reactive定义的…

产品推荐 | 基于Lattice用于原型和FPGA设计和开发的Avant-E 评估板

01 产品概述 莱迪思半导体Avant-E评估板使设计人员能够快速进行原型设计和FPGA设计测试。它提供对所有 I/O 的访问&#xff0c;以及广泛的内存选项&#xff0c;以实现更快的原型设计和开发。 Avant-E评估板采用LFG1156封装的Avant-E FPGA。该板可以通过 FMC HPC、PMAD 和 Ras…

Python机器学习项目开发实战:可视化数据

注意&#xff1a;本文的下载教程&#xff0c;与以下文章的思路有相同点&#xff0c;也有不同点&#xff0c;最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程&#xff1a;Python机器学习项目开发实战_可视化数据_编程案例解析实例详解课程教程.pdf 在Python机器学习项…

爬虫 //获取元素中的数据

// <!--jsoup解析工具所需依赖--> // <dependency> // <groupId>org.jsoup</groupId> // <artifactId>jsoup</artifactId> // <version>1.10.3</version> // </depende…

通过PyCharm平台开发Django应用程序

学会使用命令行工具开发Django应用程序是基础&#xff0c;不过更多的时候还是要借助平台开发工具。目前&#xff0c;最好的Django应用程序开发工具就是jetBrains公司推出的PyCharm平台了。 借助PyCharm开发平台&#xff0c;可以极大提高开发Django应用程序的效率&#xff0c;同…