【零基础入门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运算符的使用在类章中讨论。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读:通过时空生成卷积网络合成动态模式(重点论文)

原文链接 github code 介绍视频 视频序列包含丰富的动态模式&#xff0c;例如在时域中表现出平稳性的动态纹理模式&#xff0c;以及在空间或时域中表现出非平稳的动作模式。 我们证明了时空生成卷积网络可用于建模和合成动态模式。 该模型定义了视频序列上的概率分布&#xff0…

LeetCode刷题---旋转图像

解题思路&#xff1a; 首先对主对角线两边的元素进行交换 接着走一轮遍历&#xff0c;将第1列和第n列进行交换&#xff0c;第2列和第n-1列进行交换&#xff0c;直至得到最终的矩阵。 代码实现&#xff1a; public void rotate(int[][] matrix) {//首先对主对角线的元素进行交换…

01、Kafka ------ 下载、安装 ZooKeeper 和 Kafka

目录 Kafka是什么&#xff1f;安装 ZooKeeper下载安装启动 zookeeper 服务器端启动 zookeeper 的命令行客户端工具 安装 Kafka下载安装启动 Kafka 服务器 Kafka是什么&#xff1f; RabbitMQ的性能比ActiveMQ的性能有显著提升。 Kafka的性能比RabbitMQ的性能又有显著提升。 K…

【UEFI基础】EDK网络框架(基础说明)

基础说明 UEFI中的网络框架大致如下&#xff1a; 红框部分是实现UEFI的EDK2开源项目中网络框架自带的实现&#xff0c;红框之外的部分需要网卡设备商提供驱动。UEFI下通常推荐使用最右边的形式&#xff0c;即网卡设备商提供实现了UNDI的网卡驱动。因此UEFI网络框架的另一个形式…

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;集群技术有以下哪些优势&…

微信小程序:图片处理

参考&#xff1a;image | 微信开放文档 1、针对image图片属性 <view class"page"><view class"page__hd"><text class"page__title">image</text><text class"page__desc">图片</text></vie…

How to understand DataArts Insight in Huawei Cloud

How to understand DataArts Insight in Huawei Cloud 概述什么是DataArts Insight为什么选择华为云DataArts Insight多业务场景全覆盖&#xff0c;实现企业智能分析产品架构产品功能数据接入数据加工仪表板数据大屏交互式分析嵌入式分析智能分析助手智能洞察BI内存引擎企业级数…

HTML5-简单文件操作

文件操作 简介 概念&#xff1a;可以通过file类型的input控件或者拖放的方式选择文件进行操作 语法格式&#xff1a; <input type"file" multiple>属性 multiple&#xff1a;表示是否选择多个文件 accept&#xff1a;用于设置文件的过滤类型&#xff08;MI…

AI:115-基于深度学习的创意广告图像生成

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

七、Redis 缓存 —— 超详细操作演示!

七、Redis 缓存 —— 超详细操作演示&#xff01; 七、Redis 缓存7.1 Jedis 客户端7.1.1 Jedis 简介7.1.2 创建工程7.1.3 使用 Jedis 实例7.1.4 使用 JedisPool7.1.5 使用 JedisPooled7.1.6 连接 Sentinel 高可用集群7.1.7 连接分布式系统7.1.8 操作事务 7.2 金融产品交易平台7…

Power Automate删除SharePoint Online或OneDrive for Business文件版本历史

SharePoint Online和OneDrive for Business支持版本控制&#xff0c;可以保留文件的版本历史&#xff0c;方便用户随时查看和恢复以前的版本。但该功能也会占用大量SharePoint Online或OneDrive for Business存储空间。官方删除版本历史的方法无法批量操作&#xff0c;故今天提…

122基于matlab的CSO-SVM,BA-SVM模式识别模型

基于matlab的CSO-SVM&#xff0c;BA-SVM模式识别模型。优化SVM的两个参数晚上最佳参数确定。输出分类识别结果和准确率。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 122鸡群优化算法蝙蝠优化算法 (xiaohongshu.com)

ASP.NET Core基础之图片文件(一)-WebApi图片文件上传到文件夹

阅读本文你的收获&#xff1a; 了解WebApi项目保存上传图片的三种方式学习在WebApi项目中如何上传图片到指定文件夹中 在ASP.NET Core基础之图片文件(一)-WebApi访问静态图片文章中&#xff0c;学习了如何获取WebApi中的静态图片&#xff0c;本文继续分享如何上传图片。 那么…

Linux 如何 kill 指定的 python 进程

文章目录 写在前面一、显示python相关的进程二、找到自己想要 kill 的进程&#xff0c;执行下述指令 写在前面 自己的系统是 Ubuntu 20.04 一、显示python相关的进程 ps -ef | grep python显示结果如下 其中&#xff0c;第二列分别是各个进程的 PID 号。 二、找到自己想要…

芯课堂 | MCU之TIMER精准延时

引言 华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别&#xff0c;为了让您更加简单的使用这一功能&#xff0c;下面小编将以SWM190为例&#xff0c;给大家展示如何使用SWM系列产品的TIMER功能。 TIMER精准延时 一、TIMER简介 TIMER是一种定时器工具&#xff0c;…

数字信号处理期末复习——基础知识汇总(三)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;V…

(vue)增加行,对应行删除

(vue)增加行&#xff0c;对应行删除 效果&#xff1a; 代码&#xff1a; <div v-for"(ele,i) of algorithmList" :key"i"><el-form-item label"模型类型"><el-selectv-model"ele.algorithmId"placeholder"选择模…

技术旅程分享:收获与成长的探索

2023年对我而言是充满挑战和机遇的一年&#xff0c;我在这段时间里积累了丰富的技术经验和个人成长。通过不懈努力和持续学习&#xff0c;我在技术领域迈出了一系列坚实的步伐。在这篇文章中&#xff0c;我将分享我在这段时间中的收获和技术成长经历&#xff0c;与CSDN的朋友们…

基于Vue的宿舍管理系统

基于Vue的宿舍管理系统资源-CSDN文库 基于 Koa 以及 VueJS 的宿舍管理系统。 新增功能&#xff1a; 【楼层管理】添加『入住人员信息』模块&#xff0c;显示入住学生、性别、院系、专业的人数&#xff0c;可用饼图表示【用户信息】学生用户添加性别、院系、专业字段【楼层管理…

【Vue2+3入门到实战】(21)认识Vue3、使用create-vue搭建Vue3项目、熟悉项目和关键文件

目录 一、认识Vue31. Vue2 选项式 API vs Vue3 组合式API2. Vue3的优势 二、 使用create-vue搭建Vue3项目1. 认识create-vue2. 使用create-vue创建项目 三、 熟悉项目和关键文件四、总结 一、认识Vue3 1. Vue2 选项式 API vs Vue3 组合式API <script> export default {…