Javascript + Typescript 特殊运算符号

TypeScript 与 JavaScript 的区别(TypeScript万字基础入门,了解TS,看这一篇就够了) 面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。单实例继承age:numberconsole.log("年龄: "+drummer.age)console.log("喜欢的乐器: "+drummer.instrument)// 年龄: 25// 喜欢的乐器: Drums多实例继承v1:numberv2:number面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。 阅读详情

Js + Ts 特殊运算符号

通用
空值合并运算符 ?? 与 || &&

?? 更像是针对于异常数据的处理

|| 包含针对 异常数据与 空数据的处理,根据实际情况选择使用即可!

&& 前者为真 ,返回后者,否则返回前者。

console.log(null ?? 'deault');  //  "deault"
console.log(undefined ?? 'deault'); //  "deault"
console.log(false ?? 'deault'); // false
console.log(NaN ?? 'deault'); // NaN
console.log("" ?? 'deault'); // ""
console.log(0 ?? 'deault'); // 0
//用法
// let person = data.xx ? data.xx : {name: 'NiGuang'}; 代替三目
let person = data.xx ?? {name: 'NiGuang'};

console.log(null || 'deault');  //  "deault"
console.log(undefined || 'deault'); //  "deault"
console.log(false || 'deault'); // "deault"
console.log(NaN || 'deault'); // "deault"
console.log("" || 'deault'); // "deault"
console.log(0 || 'deault'); // "deault"

console.log("string" && 'deault');  //  "deault"
console.log(null && 'deault'); //null
console.log(undefined && 'deault'); //  undefined
console.log(false && 'deault'); // false
console.log(NaN && 'deault'); // Nan
console.log("" && 'deault'); // ""
console.log(0 && 'deault'); // 0
可选链 ?.

相信大家已经非常熟悉这个操作符了,就是用作调用对象的属性,无此属性,返回undefined,不至于报错!

let grade1 = {
    data: {},
    resp: 'success',
    code: 1000
}
 
// 使用了可选链式运算符之后直接写,如果在其中一层没找到会自动赋值为undefined,不再向 后查找,避免了使用if进行一层层判断。
console.log(grade1.data?.productList?.name); // undefined

取整 ~~

~~ 不四舍五入,抹掉零头式取整

console.log(~~10.8); // 10
console.log(~~10.3); // 10
console.log(~~-5.9); // -5
取中间值 >>
// 求(2,7)的中间值
console.log(Math.floor(2 + (7 - 2) / 2));  // 4
console.log(Math.floor((2 + 7) / 2));  // 4
console.log((2 + 7) >> 1);  // 4
Ts文件中使用
双感叹号 !!

JavaScript具有隐式转换类型,像''、0、null、undefined会被转换为false。

为了让代码更加严谨,通常使用双感叹号来将一个空状态强制转换为boolean类型。

const  formateData = (data:Array<string>)=>{
    //TO DO... 可能返回undefined
    return data.length > 0 ? true :null
}
const result = (res:Array<string>):boolean=>{
    return formateData(res)!!
}

当然:不会有人故意返回null的,这只是一个例子~

变量后面加 ! (Ts文件中使用)
let name: string | null = "Tom";
// 避免了编译器的空值检查,但是生成的js文件中还是name.length,如果此时name为null,那么就会出现运行时异常
console.log(name!.length); 

function greet(name: string): string {
  return `Hello, ${name}`;
}
const name2: string | null = "Tom";
console.log(greet(name2!)); // 告诉编译器此变量不会为null或undefined

之后还有比较奇特的 运算符 本篇文章会再进行修改补充!

探讨js中的双感叹号判断 js中的双感叹号判断。在网上查了些资料,他相当于三元运算符,返回boolean值 立即下载

相关推荐

字符串替换—牛客网(C++实现)

一.题目描述 请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。 给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。 测试样例: “A%sC%sE”,7,[‘...

qq_38358582的博客 1523

!!双感叹号在 JavaScript 或者 TypeScript 中的应用场景

!!双感叹号在 JavaScript 或者 TypeScript 中的作用

Constantiny的博客 745

保姆级教程:用Python仿真OFDM系统(附抗多径干扰优化方案)

本文提供了一份详细的Python仿真OFDM通信系统教程。通过NumPy和Matplotlib,从二进制比特流开始,逐步构建完整的OFDM系统模型,涵盖IFFT、循环前缀等核心概念。重点探讨了如何对抗多径干扰,并提供了优化方案,通过误码率曲线直观对比性能,适合通信工程学习和物理层开发实践。

weixin_29230649的博客 232

typescript的~~和双感叹号符号使用

(标题不给用“!”)

dupha的博客 940

量化数据采集实战:从App接口逆向到Python爬虫系统构建

数据采集是量化分析和自动化策略的基石,其核心原理是通过程序模拟客户端行为,从目标服务器获取结构化数据。在金融科技领域,高效、稳定的数据采集能力直接决定了策略研究的深度和时效性。面对金融App常见的反爬机制,如请求签名和身份认证,工程师需要掌握网络协议分析、接口逆向与模拟请求等关键技术。这些技术不仅能用于获取市场情绪、资金流向等高频数据,更是构建个人量化研究基础设施、实现从主观看盘到客观数据分析转型的关键一步。本文以实战为例,深入剖析了如何系统性地逆向分析数据接口、破解签名算法,并最终构建一个包含代理IP池与

weixin_29032489的博客 1481

大厂硬件机试选择题与判断题解析-卷1

本文精选30道硬件工程师机试题目,涵盖模拟电路、数字电路、PCB设计三大方向。模拟电路部分重点考察运算放大器、滤波器、整流电路等核心知识;数字电路部分聚焦计数器、电平转换等关键技术;PCB设计部分强调高速信号处理、阻抗控制等实践要点。题目均来自华为、小米等大厂真题,剔除基础题,每道题附详细解析,包括正确答案推导过程及相关公式说明。特别针对易错概念(如负反馈类型判断、Q值与带宽关系等)进行重点解析,帮助考生系统掌握硬件设计的核心考点和解题思路。

启芯硬件的博客 679

typescript里面一个问号(?)两个问号(??)一个感叹号(!)两个感叹号(!!)的用法和区别。

1.. 一个问号(?)在 TypeScript 中用于表示可选属性和可选参数,使得属性和参数可以选择性地存在。可选属性: 在对象类型中,可以使用问号来标记某个属性是可选的。这意味着该属性可以存在,也可以不存在。在上面的例子中,age属性被标记为可选,因此可以在对象中选择性地包含它。可选参数: 在函数的参数列表中,可以使用问号来标记某个参数是可选的。这意味着在调用函数时,可以选择性地省略该参数。在上面的例子中,age参数被标记为可选,因此可以选择性地在函数调用中省略它。2. 两个问号(??

zwjapple的专栏 4437

ESP32与DS18B20温度传感器的数据采集与告警系统

并且,通过自定义的微信告警功能,我们可以及时收到温度超过阈值的告警消息。随着物联网的快速发展,传感器在各种应用场景中发挥着重要的作用。本文将介绍如何使用ESP32微控制器与DS18B20温度传感器结合,通过串口输出和Web服务器实现温度数据的采集和监控,并使用自定义微信告警功能。上传完成后,打开串口监视器,您将看到ESP32连接到Wi-Fi网络,并开始监测温度。在您的计算机或移动设备上,打开一个Web浏览器,并输入ESP32的IP地址。在浏览器中输入ESP32的IP地址后,您将看到显示当前温度的页面。

loop_class349的博客 2246

JavaScript中双叹号(!!)作用

经常看到这样的例子: var a; var b=!!a; a默认是undefined。!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断提供便利。 !!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false; 因为javascript是弱类型的语言(变量没有固定的数据类型)...

linbots的博客 7482

YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题

1.首先,WTConv利用二维Haar小波变换对输入图像进行多级分解。低频分量 (LL):捕捉图像的低频信息,如整体形状或轮廓。水平高频分量 (LH):捕捉图像中的水平边缘信息。垂直高频分量 (HL):捕捉图像中的垂直边缘信息。对角线高频分量 (HH):捕捉图像的对角线细节。在每一级的小波变换中,图像被下采样(空间分辨率减半),但频率信息得到了更细的分解。递归地执行小波变换(称为多级分解)可以得到不同尺度下的频率分量。

qq_64693987的博客 1万+

ardupilot 获取避障传感器数据

本节主要记录自己学ardupilot的避障代码过程,首先看下怎么注册避障传感器,然后怎么获取避障数据。

陌城烟雨 5525

从零开始学习typescript系列5: typescript特殊符号之感叹号、问号、双问号

感叹号:强制链式调用。

qubes的专栏 886

RK平台PCIE-Ethernet扩展:Intel I210移植与性能飞升之路

本文详细介绍了Intel I210千兆以太网控制器在瑞芯微RK平台的移植与优化过程。通过硬件适配、内核配置、驱动开发及性能调优四个关键环节,实现了RK平台的网络性能提升。硬件方面,重点说明了PCIE接口的规范连接与供电检查;软件方面,系统阐述了内核配置、设备树修改和驱动编译流程。在性能优化环节,详细介绍了中断优化、缓冲区设置和TCP/IP协议栈调优策略,并采用Iperf和Netperf工具进行量化测试验证。测试结果显示,优化后的网络吞吐量提升20%以上,延迟降低40%,为工业控制、智能安防等场景提供了可靠的

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 352

TypeScript学习笔记3:运算符

运算符也称为操作符、用来实现赋值、算术运算和比较等功能的符号,本文记录主要的运算符!

VirusScanLog的博客 755

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TypeScript 运算符

本文详细介绍了TypeScript中的各类运算符及其使用场景,包括算术、比较、逻辑、赋值、位运算等基本运算符,以及TypeScript特有的类型相关运算符。重点说明了TypeScript在运算符使用中的类型检查机制,能够帮助开发者在编译时捕获潜在类型错误。文章还通过示例代码展示了各运算符的具体用法和TypeScript中的类型推断特性,特别是逻辑运算符的类型缩小功能。此外,特别标注了TypeScript独有的类型空间运算符,如typeof、keyof、as断言等,这些在JavaScript运行时不存在但在T

m0_57545130的博客 890

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JavaScript & TypeScript 学习总结

JavaScript与typescript学习总结

qq_51719368的博客 496

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

WEB学习之JavaScript & TypeScript总结

JavaScript和typescript的一些学习

qq_54553728的博客 1072

我的JavaScript & TypeScript 学习总结

我的JavaScript & TypeScript 学习总结

killvector的博客 210

JS和TS中常用特殊字符

JS与TS特殊运算符

星河梦~的博客 1084

JavaScript TypeScript

在 package.json 文件的 “scripts” 部分,你可以添加自定义的脚本命令,并通过。

123456789 429

JavaScript+TypeScript

JavaSscript+TypeScript 学习记录

m0_64400303的博客 324

JavaScript && TypeScript 学习总结

对JavaScript 和 TypeScript 的阶段性学习总结

weixin_51688234的博客 146

JavaScript运算符以及JavaScript存在的问题

可以将+,-,*,/和=结合起来使用,形成复合赋值运算符。例如: a+=1,n-=m;它们的含义是a = a + 1和n = n - m.JavaScript毫无疑问是动态语言,当你定义变量的时候,并没有声明变量的数据类型;另外值得关注的一点是JavaScript还是弱类型的语言,例如: 动态语言是极其灵活的,它能带来静态语言所没有的优势。但是JavaScript是动态语言的同时又是弱数据类型语言。这样就过于灵活了,对于工程而言是灾难性的。例如,我有两个变量a和b,他们之间进行加法运算,预期的结果是两个数值

zy010101博客 406
上一篇: Typescript index.d.ts 详解
下一篇: JavaScript之代码重构
知夏__
博客等级 码龄5年 94粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值