【零基础入门TypeScript】TypeScript - 运算符

目录

​编辑

什么是操作员?

算术运算符

关系运算符

逻辑运算符

按位运算符

赋值运算符

杂项运算符

否定运算符 (-)

字符串运算符:连接运算符 (+)

条件运算符 (?)

类型运算符

类型运算符

实例化


什么是操作员?

运算符定义将对数据执行的某些函数。运算符所处理的数据称为操作数。考虑以下表达式 -

7 + 5 = 12

这里,值 7、5 和 12 是操作数,而 + 和 = 是运算符

TypeScript 中的主要运算符可以分为:

  • 算术运算符
  • 逻辑运算符
  • 关系运算符
  • 按位运算符
  • 赋值运算符
  • 三元/条件运算符
  • 字符串运算符
  • 类型运算符

算术运算符

假设变量a和b的值分别为10和5。

显示示例

操作员描述例子
+(加法)返回操作数的和a + b 是 15
-(减法)返回值的差值a - b 为 5
*(乘法)返回值的乘积a * b 为 50
/ (分配)执行除法运算并返回商a/b 为 2
%(模数)执行除法运算并返回余数a % b 为 0
++(增量)将变量的值加一a++ 是 11
--(递减)将变量的值减一a-- 是 9

关系运算符

关系运算符测试或定义两个实体之间的关系类型。关系运算符返回一个布尔值,即 true/false。

假设A的值为10,B的值为20

操作员描述例子
>比...更棒(A > B) 为假
<小于(A < B) 为真
>=大于或等于(A >= B) 为假
<=小于或等于(A <= B) 为真
==平等(A == B) 为假
!=不等于(A != B) 为真

逻辑运算符

逻辑运算符用于组合两个或多个条件。逻辑运算符也返回布尔值。假设变量 A 的值为 10,B 的值为 20

操作员描述例子
&& (和)仅当指定的所有表达式都返回 true 时,该运算符才返回 true(A > 10 && B > 10) 为假
|| (或者)如果至少有一个指定的表达式返回 true,则该运算符返回 true(A > 10 || B >10) 为真
!(不是)该运算符返回表达式结果的倒数。例如:!(>5) 返回 false!(A >10 ) 为真

按位运算符

假设变量 A = 2 且 B = 3

操作员描述例子
&(按位与)它对其整数参数的每一位执行布尔 AND 运算。(A & B) 为 2
| (按位或)它对其整数参数的每一位执行布尔 OR 运算。(A | B) 为 3
^(按位异或)它对其整数参数的每一位执行布尔异或运算。异或意味着操作数一为真或操作数二为真,但不能两者都为真。(A^B) 为 1
~(按位非)它是一个一元运算符,通过反转操作数中的所有位来进行运算。(~B) 为 -4
<<(左移)它将第一个操作数中的所有位向左移动第二个操作数中指定的位数。新的位用零填充。将值左移一位相当于乘以 2,左移两位相当于乘以 4,依此类推。(A << 1) 是 4
>>(右移)二进制右移运算符。左操作数的值向右移动右操作数指定的位数。(A >> 1) 是 1
>>>(右移零)该运算符与 >> 运算符类似,只是左侧移入的位始终为零。(A >>> 1) 是 1

赋值运算符

操作员描述例子
=(简单赋值)将右侧操作数中的值分配给左侧操作数C = A + B 将 A + B 的值赋给 C
+=(添加和赋值)它将右操作数添加到左操作数,并将结果分配给左操作数。C += A 等价于 C = C + A
-=(减法和赋值)它从左操作数中减去右操作数,并将结果赋给左操作数。C -= A 相当于 C = C - A
*=(乘法和赋值)它将右操作数与左操作数相乘,并将结果赋给左操作数。C *= A 相当于 C = C * A
/=(除法和赋值)它将左操作数与右操作数相除,并将结果赋给左操作数。

注意- 相同的逻辑适用于按位运算符,因此它们将变为 <<=、>>=、>>=、&=、|= 和 ^=。

杂项运算符

否定运算符 (-)

更改值的符号。让我们举个例子。

var x:number = 4
var y = -x;
console.log("value of x: ",x); //outputs 4
console.log("value of y: ",y); //outputs -4

编译时,它将生成以下 JavaScript 代码。

//Generated by typescript 1.8.10
var x = 4;
var y = -x;
console.log("value of x: ", x); //outputs 4
console.log("value of y: ", y); //outputs -4

它将产生以下输出 -

value of x:  4 
value of y:  -4

字符串运算符:连接运算符 (+)

+ 运算符应用于字符串时会将第二个字符串附加到第一个字符串。下面的例子可以帮助我们理解这个概念。

var msg:string = "hello"+"world"
console.log(msg)

编译时,它将生成以下 JavaScript 代码。

//Generated by typescript 1.8.10
var msg = "hello" + "world";
console.log(msg);

它将产生以下输出 -

helloworld

连接操作不会在字符串之间添加空格。多个字符串可以连接在一个语句中。

条件运算符 (?)

该运算符用于表示条件表达式。条件运算符有时也称为三元运算符。语法如下 -

Test ? expr1 : expr2
  • 测试- 指条件表达式

  • expr1 - 如果条件为真则返回的值

  • expr2 - 如果条件为假则返回的值

让我们看一下下面的代码 -

var num:number = -2
var result = num > 0 ?"positive":"non-positive"
console.log(result)

第 2 行检查变量num中的值是否大于零。如果num设置为大于零的值,则返回字符串“正数”,否则返回字符串“非正数”。

编译时,它将生成以下 JavaScript 代码。

//Generated by typescript 1.8.10
var num = -2;
var result = num > 0 ? "positive" : "non-positive";
console.log(result);

上面的代码片段将产生以下输出 -

non-positive

类型运算符

类型运算符

它是一个一元运算符。该运算符返回操作数的数据类型。看一下下面的例子 -

var num = 12 console.log(typeof num); //output: number

编译时,它将生成以下 JavaScript 代码。

//Generated by typescript 1.8.10
var num = 12;
console.log(typeof num); //output: number

它将产生以下输出 -

number

实例化

该运算符可用于测试对象是否属于指定类型。instanceof运算符的使用在类章中讨论。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

yolo增加Shape-IoU,完美超越SIoU/EIoU/CIoU

论文地址&#xff1a;https://arxiv.org/pdf/2312.17663.pdf 代码地址&#xff1a;GitHub - malagoutou/Shape-IoU 摘要 作为检测定位分支的重要组成部分&#xff0c;边界框回归损失在目标检测任务中起着重要作用。现有的边界框回归方法通常考虑GT框和预测框之间的几何关系&…

Arrays

Arrays 用来操作数组的一个工具类 Arrays提供的常见方法 方法名说明public static String toString&#xff08;类型 [ ] arr&#xff09;返回数组的内容 public static int [ ] copyOfRange&#xff08;类型 [ ] arr&#xff0c;起始索引&#xff0c;结束索引&#xff09;…

uniapp 使用wx.getFuzzyLocation获取当前的模糊地理位置

前言&#xff1a; 最近在进行一个小程序项目开发的时候&#xff0c;需要用到定位的功能&#xff0c;然后首先是尝试了getLocation方法&#xff0c;但是sccess中的内容始终无法打印&#xff0c;后来才知道是需要申请权限&#xff0c;在连续小程序后台管理员申请权限之后&#x…

插入排序算法

插入排序是一种简单直观的排序算法&#xff0c;其工作原理是通过构建有序序列&#xff0c;从后向前扫描&#xff0c;找到相应位置并插入。直接插入排序是插入排序的一种&#xff0c;它每次将一个待排序的记录按其关键字大小插入到前面已经排序的子序列中的适当位置&#xff0c;…

【Week-P4】CNN猴痘病识别

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结2.3 ⭐torch.utils.data.DataLoader()参数详解6.1 print()常用的三种输出格式6.2 修改网络结构6.2.1 增加池化、卷积和bn层6.2.2 增加卷积、bn、卷积、bn &#x1f368; 本文为&#x1…

Uniapp使用wx.getFuzzyLocation()方法,没有超过日调用次数,报错:“此key每日调用已达到上限”

前言&#xff1a; 最近在进行一个小程序项目开发的时候&#xff0c;使用wx.getFuzzyLocation()方法&#xff0c;没有超过日调用次数&#xff0c;但是却出现了报错&#xff1a;“此key每日调用已达到上限”。 解决方案&#xff1a; 打开腾讯位置服务 - 立足生态&#xff0c;连…

Eureka学习思维导图

一、Eureka Server原理解析 参考&#xff1a;https://www.jianshu.com/p/eb690e6ab11d 二、Eureka Client源码解析 参考&#xff1a;https://www.jianshu.com/p/6e8850387da6

odoo 客制化审批流

以BPM、OA为代表的应用平台&#xff0c;低代码处理为前提的审批流功能定制化 功能介绍&#xff1a; 业务对象&#xff1a;针对侵入式注册BPM业务场景&#xff1a;设置审批场景&#xff1a;如&#xff1a;请假大于三天的场景、金额大于1000的场景节点条件&#xff1a; 当符合某…

钡铼分布式IO在玻璃制造中的实时数据采集与监控应用介绍

导读 玻璃行业多年来一直广泛使用 PLC 来帮助管理生产过程所需的精确材料比例&#xff0c;完全依赖其PLC进行数据采集与控制&#xff0c;并且大量依靠人工来操作&#xff0c;所以这些高成本推动了对成本较低的替代方案的需求。 场景描述 某玻璃厂生产的玻璃生产包括配料段、熔…

Android App从备案到上架全过程

不知道大家注意没有,最近几年来,新的移动App想要上架是会非常困难的,并且对于个人开发者和小企业几乎是难如登天,各种备案和审核。但是到底有多难,或许只有上架过的才会有所体会。 首先是目前各大应用市场陆续推出新的声明,各种备案截止日期到12月就要到最后期限责令整改…

74HC595驱动数码管程序

数码管的驱动分静态扫描和动态扫描两种&#xff0c;使用最多的是动态扫描&#xff0c;优点是使用较少的MCU的IO口就能驱动较多位数的数码管。数码管动态扫描驱动电路很多&#xff0c;其中最常见的是74HC164驱动数码管&#xff0c;这种电路一般用三极管作位选信号&#xff0c;用…

【UnityShader入门精要学习笔记】(3)章节答疑

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 复习&#xff08;阶段性总结…