【零基础入门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.mzph.cn/news/594632.shtml

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

相关文章

【Echarts实践案例】如何在线图上标记一个非轴线上的点

需求背景&#xff1a; 当前有一个趋势图&#xff0c;横坐标表示灯泡平均使用时长&#xff0c;纵坐标表示灯泡平均使用温度。现在需要在当前坐标系下标记一个正在使用中的灯泡的时长及温度&#xff08;趋势图表示的是计算出的平均温度&#xff0c;所以当前灯泡的温度可能不会在…

HCIA-Datacom题库(自己整理分类的)_02_网络设备基础多选【14道题】

注&#xff1a;红色题目是答案有争议。 1.以下哪些MAC地址不能作为主机网卡的MAC地址&#xff1f; 00-02-03-04-05-06 02-03-04-05-06-07 01-02-03-04-05-06 03-04-05-06-07-08 解析&#xff1a;MAC地址的第二位必须是偶数。 2.堆叠&#xff0c;集群技术有以下哪些优势&…

聚醚胺市场分析:预计到2025年将达到10亿美元

聚醚胺是一种有机化合物&#xff0c;在涂料、胶粘剂、树脂等多种行业中用作固化剂、缓蚀剂和燃料添加剂。由于对广泛用于建筑和汽车行业的聚脲涂料的需求不断增加&#xff0c;全球聚醚胺市场一直在经历显着增长。 全球市场分析&#xff1a; 2020 年全球聚醚胺市场价值为 6.2 亿…

python django 个人记账管理系统

python django 个人记账管理系统。 功能&#xff1a;登录&#xff0c;新用户注册&#xff0c;个人信息修改&#xff0c;收入&#xff0c;支出记录&#xff0c;收入记账管理&#xff0c;支出记账管理&#xff0c;收入&#xff0c;支出统计 技术&#xff1a;python django&…

分布式(5)

目录 22.什么是Paxos算法&#xff1f;如何实现&#xff1f; 24.全局唯一ID有哪些实现方案&#xff1f; 25.数据库方式实现方案&#xff1f;有什么缺陷&#xff1f; 22.什么是Paxos算法&#xff1f;如何实现&#xff1f; Paxos算法是Lamport宗师提出的一种基于消息传递的分布…

利用ArcGIS探究环境与生态因子对水体、土壤、大气污染物等影响的实践技术

如何利用ArcGIS实现电子地图可视化表达&#xff1f;如何利用ArcGIS分析空间数据&#xff1f;如何利用ArcGIS提升SCI论文的层次&#xff1f;制图是地理数据展现的直观形式&#xff0c;也是地理数据应用的必要基础。本次课程从ArcGIS的基本操作、ArcGIS 的空间数据分析及ArcGIS 的…

低代码搭建,助力批发零售行业解决方案的快速实现

引言 随着技术的快速发展&#xff0c;低代码技术作为一种高效的业务解决方案&#xff0c;正日益在批发零售行业中展现其巨大的应用潜力。其所带来的快速搭建、灵活性和成本效益&#xff0c;对于现代批发零售业务的管理和发展具有重要意义。 本文旨在探讨低代码技术在批发零售…

HTTPS网站安全证书

随着互联网的迅猛发展&#xff0c;网络安全问题日益凸显&#xff0c;而HTTPS网站安全证书作为一项关键技术&#xff0c;正成为保护用户隐私和数据安全的不可或缺的手段之一。本文将介绍HTTPS网站安全证书的定义、作用、种类及部署过程&#xff0c;以帮助读者更好地理解和应用这…

1.3 力扣二叉树中等题

题目一&#xff1a; 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即&#xff0c;如果没有被移除&…

物联网安全:保护关键网络免受数字攻击

物联网 (IoT) 彻底改变了当今互联世界中的各个行业&#xff0c;实现了智能家居、自动驾驶汽车和先进的工业系统。然而&#xff0c;随着物联网设备数量的急剧增加&#xff0c;这些设备和相应网络的安全性已成为人们关注的焦点。本文旨在探讨物联网安全的重要性&#xff0c;同时简…

web自动化(6)——项目配置和Grid分布式

1. 框架的可配置性 项目之间的区别&#xff1a; 兼容性&#xff1a;有些项目只兼容chrome&#xff0c;有些只兼容Firefox等元素定位特点&#xff1a;有些项目闪现快&#xff0c;有的项目很慢有些项目集成Jenkins&#xff0c;不需要用python生成allure报告 如果想要我们的框架…

QT上位机开发(数据库sqlite编程)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 编写软件的时候&#xff0c;如果用户的数据比较少&#xff0c;那么用json保存是非常方便的。但是一旦数据量大了之后&#xff0c;建议还是用数据库…

Minio集群部署(docker版本)

先在/etc/hosts中添加虚拟域名 {ip} minio1 {ip} minio2 执行docker命令 docker run -it -d --name minio-01 --restartalways --nethost \ -e "MINIO_ROOT_USER{用户名}" \ -e "MINIO_ROOT_PASSWORD{密码}" \ -v /data/docker/minio/update:/data1 #…

三种方式在ASP.NET Core中实现代理功能请求获取数据的接口(以请求百度统计数据接口为例)

一、定义请求数据属性 TargetUrl参数是目标接口的URL&#xff0c;RequestDataArray参数是要发送的请求数据列表 //定义属性:TargetUrl参数是目标接口的URL&#xff0c;RequestDataArray参数是要发送的请求数据列表public class ToResponseBody{[JsonPropertyName("Target…

智能化校园:深入探讨云端管理系统设计与实现(二)

系列文章目录 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 文章目录 系列文章目录功能开发登录功能分析验证码功能实现登录校验功能登录后跳转功能 系统管理器实现验证码响应图片功能实现异步图片上传头像功能实现全局修改密码功能实现 …

YOLOv8改进 | 主干篇 | CSWinTransformer交叉形窗口网络

一、本文介绍 本文给大家带来的改进机制是CSWin Transformer,其基于Transformer架构,创新性地引入了交叉形窗口自注意力机制,用于有效地并行处理图像的水平和垂直条带,形成交叉形窗口以提高计算效率。它还提出了局部增强位置编码(LePE),更好地处理局部位置信息,我将其…

HttpClient库与代理IP在爬虫程序中的应用

目录 前言 一、HttpClient库的基本使用方法 二、代理IP的使用方法 三、代理IP池的使用方法 四、总结 前言 在编写爬虫程序时&#xff0c;我们经常会使用HttpClient库来发送HTTP请求&#xff0c;获取网页内容。然而&#xff0c;有些网站可能会对频繁的请求进行限制&#x…

前端工程化回顾-vite 构建神器

1.构建vite 项目 pnpm create vite2.常用的配置&#xff1a; 1.公共资源路径配置&#xff1a; base: ./, 默认是/2.路径别名配置&#xff1a; resolve: {alias: {: path.resolve(__dirname, ./src),ass: path.resolve(__dirname, ./src/assets),comp: path.resolve(__dirnam…

uni-app中实现元素拖动

uni-app中实现元素拖动 1、代码示例 <template><movable-area class"music-layout"><movable-view class"img-layout" :x"x" :y"y" direction"all"><img :src"musicDetail.bgUrl" :class&…

springboot+redisTemplate多库操作

单库操作 我做了依赖管理&#xff0c;所以就不写版本号了添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>配置文件 spring:redis:database: 2…