JavaScript高级程序设计读书分享之3章——3.5操作符

news2025/7/5 15:50:05

JavaScript高级程序设计(第4版)读书分享笔记记录

适用于刚入门前端的同志

目录

 操作符

一元操作符

递增/递减操作符

 一元加和减

布尔操作符

 逻辑非

逻辑与

 逻辑或

乘性操作符

乘法操作符

除法操作符

取模操作符

加性操作符

加法操作符

减法操作符

关系操作符

相等操作符

等于和不等于

 全等和不全等

条件操作符

赋值操作符

逗号操作符


 

 操作符

        可用于操作数据值的操作符 ,包括数学操作符(如加、减)、位操作符、关系操作符和相等操作符等。ECMAScript 中的操作符是独特的,因为它们可用于各种值,包括字符串、数值、布尔值,甚至还有对象。

一元操作符

只操作一个值的操作符叫 一元操作符 unary operator

递增/递减操作符

有两个版本:前缀版和后缀版。顾名思义,前缀版就是位于要操作的变量前头,后缀版就是位于要操作的变量后头。
//前缀递增操作符
let age = 24
++age; //同等于 age = age + 1;

//前缀递减操作符
let age = 29; 
--age; //同等于 age = age - 1;


//后缀递增操作符
let age = 24
age++;

//后缀递减操作符
let age = 29; 
age--;
前缀递增和递减在语句中的优先级是相等的,因此会从左到右依次求值。
let num1 = 2; 
let num2 = 20; 
let num3 = --num1 + num2; 
let num4 = num1 + num2; 
console.log(num3); // 21 
console.log(num4); // 21   是因为加法使用的也是递减后的值。
后缀版递增和递减在语句被求值后才发生
let num1 = 2; 
let num2 = 20; 
let num3 = num1-- + num2; 
let num4 = num1 + num2;
console.log(num3); // 22 
console.log(num4); // 21

 一元加和减

一元加由一个加号( + )表示,放在变量前头,对数值没有任何影响
let num = 25; 
num = +num; 
console.log(num); // 25
  一元减由一个减号( - )表示,放在变量前头,主要用于把数值变成负值
let num = 25; 
num = -num; 
console.log(num); // -25
       如果将一元 应用到非数值,则会执行与使用 Number() 转型函数一样的类型转换:布尔值 false和 true 转换为 0 1 ,字符串根据特殊规则进行解析,对象会调用它们的 valueOf() / toString()方法以得到可以转换的值。

布尔操作符

 逻辑非

        逻辑非操作符由一个叹号(! )表示,可应用给 ECMAScript 中的任何值。这个操作符始终返回布尔值,无论应用到的是什么数据类型。逻辑非操作符首先将操作数转换为布尔值,然后再对其取反。
  •  如果操作数是对象,则返回 false
  •  如果操作数是空字符串,则返回 true
  •  如果操作数是非空字符串,则返回 false
  •  如果操作数是数值 0,则返回 true
  •  如果操作数是非 0 数值(包括 Infinity),则返回 false
  •  如果操作数是 null,则返回 true
  •  如果操作数是 NaN,则返回 true
  •  如果操作数是 undefined,则返回 true
console.log(!false); // true 
console.log(!"blue"); // false 
console.log(!0); // true 
console.log(!NaN); // true 
console.log(!""); // true 
console.log(!12345); // false

逻辑与

逻辑与操作符由两个和号( && )表示,应用到两个值
let result = true && false;

 逻辑或

逻辑或操作符由两个管道符( || )表示
let result = true || false;

 利用这个行为,可以避免给变量赋值 null undefined

let myObject = preferredObject || backupObject;
//如果 preferredObject 不是 null,则它的值就会赋给myObject;如果 preferredObject 是 null,则backupObject 的值就会赋给 myObject。

乘性操作符

乘法操作符

乘法操作符由一个星号( * )表示,可以用于计算两个数值的乘积
let result = 34 * 56;

除法操作符

除法操作符由一个斜杠( / )表示,用于计算第一个操作数除以第二个操作数的商
let result = 66 / 11;

取模操作符

取模(余数)操作符由一个百分比符号( % )表示
let result = 26 % 5; // 等于 1

加性操作符

加法操作符

let result = 1 + 2;

如果两个操作数都是字符串,则将第二个字符串拼接到第一个字符串后面

如果只有一个操作数是字符串,则将另一个操作数转换为字符串,再将两个字符串拼接在一起

let result = 'hello' + '你好'
let result2 = 5 + "5"; // 一个数值和一个字符串
console.log(result); // "hello你好"
console.log(result2); // "55"

减法操作符

let result = 2 - 1;

关系操作符

关系操作符执行比较两个值的操作,包括小于( < )、大于( > )、小于等于( <= )和大于等于( >= ),用法跟数学课上学的一样。

相等操作符

等于和不等于

等于操作符用两个等于号( == )表示,如果操作数相等,则会返回 true。
不等于 操作符用叹号和等于号(!= )表示,如果两个操作数不相等,则会返回 true

 全等和不全等

全等操作符由 3 个等于号( === )表示,只有两个操作数在不转换的前提下相等才返回 true。
let result1 = ("55" == 55); // true,转换后相等
let result2 = ("55" === 55); // false,不相等,因为数据类型不同
不全等操作符用一个叹号和两个等于号( !== )表示,只有两个操作数在不转换的前提下不相等才
返回 true
let result1 = ("55" != 55); // false,转换后相等
let result2 = ("55" !== 55); // true,不相等,因为数据类型不同

条件操作符

语法:

variable = boolean_expression ? true_value : false_value;
如果 boolean_expression true ,则赋值 true_value ;如果boolean_expression 是 false ,则赋值 false_value

赋值操作符

  • 乘后赋值(*=
  • 除后赋值(/=
  • 取模后赋值(%=
  • 加后赋值(+=
  • 减后赋值(-=
  • 左移后赋值(<<=
  • 右移后赋值(>>=
  • 无符号右移后赋值(>>>=

案例:

let num = 10; 
num = num + 10; 
//以上代码的第二行可以通过复合赋值来完成:
let num = 10; 
num += 10;

逗号操作符

逗号操作符可以用来在一条语句中执行多个操作,如下所示:
let num1 = 1, num2 = 2, num3 = 3;
在赋值时使用逗号操作符分隔值,最终会返回表达式中最后一个值:
let num = (5, 1, 4, 8, 0); // num 的值为 0

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

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

相关文章

使用python将EXCEL表格中数据转存到数据库

使用Python将excel表格中数据转存到数据库 1. 思路&#xff1a; 1&#xff09; 使用python读取excel表格中数据 2&#xff09;根据数据生成sql语句 3&#xff09;批量运行sql语句 2. 代码&#xff1a; import pandas as pddef readExcel(path, excel_file):return pd.read_e…

低代码开发平台|制造管理-质检管理搭建指南

1、简介1.1、案例简介本文将介绍&#xff0c;如何搭建制造管理-质检管理。1.2、应用场景质检分别包括来料质检、过程质检、成品质检&#xff0c;来料质检在采购物料入库后会自动发起来料质检的流程&#xff0c;质检合格才可提交结束流程&#xff1b;过程检是在生产过程中的质检…

小程序-滑块+iconfont下载本地使用

效果 <view style"padding: 5px;"><movable-area style"width: 100%;height: 100%;"><movable-view direction"all" style"width: 50px;height: 50px;background-color: green"> </movable-view></movable…

推荐一些不常见的搜索引擎

5.雅虎网来自 Yahoo.com 的屏幕截图&#xff0c;2023 年 2 月截至 2022 年 1 月&#xff0c;Yahoo.com&#xff08;Verizon Media&#xff09;的搜索市场份额为 11.2%。雅虎的优势在于多元化&#xff0c;除搜索外还提供电子邮件、新闻、金融等服务。二十多年来&#xff0c;雅虎…

MyBatis 之一(概念、创建项目、操作模式、交互流程)

1. MyBatis 是什么MyBatis 是一款优秀的持久层框架MyBatis 也是一个 ORM &#xff08;Object Relational Mapping&#xff09;框架&#xff0c;即对象关系映射它支持自定义 SQL、存储过程以及高级映射MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作MyBatis…

SpringAOP笔记【JavaEE】

SpringAOP 一、AOP理解 AOP是一种思想&#xff0c;SpringAOP是一个框架&#xff0c;提供了一种对AOP思想的实现&#xff0c;他们的关系就像MVC和SpringMVC、IOC与DI类似。 AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;通过预…

CHAPTER 1 Zabbix介绍及安装

Zabbix介绍及安装1.1 Zabbix监控1 为什么要监控1.1 网站可用性2 监控什么东西2.1 监控范畴3 怎么来监控3.1 远程管理服务器3.2 监控硬件3.3 查看cpu相关3.4 内存3.5 磁盘3.6 监控网络4 监控工具总览5 zabbix介绍5.1 zabbix的组成5.2 zabbix监控范畴1.2 安装zabbix1 环境检查2 安…

磁疗为什么“没效果”?原来真相是这样!

很多人磁疗之后&#xff0c; 总爱迫不及待问一个问题&#xff1a; “这个多长时间见效啊&#xff1f;” …… 还有些人几天没有效果&#xff0c; 就果断下结论&#xff1a; “这东西没用&#xff01;” …… 有不少人错误地把磁疗等同于“药品”一样看待&#xff0c;总觉得…

RPA+保险后台部门擦出不一样“火花” | RPA案例

在保险行业中&#xff0c;后台业务线主要是为前台和中台等提供支持&#xff0c;提供公司整体运营服务&#xff0c;包括财务、信息、人力、综合办等。相对于中前台部门&#xff0c;后台部门离核心价值链更远一些&#xff0c;更偏支持部门&#xff0c;其中某些岗位与业务相关度强…

金三银四面试必看,复盘字节测试开发面试:一次测试负责人岗位面试总结

最近面试了某企业的测试负责人岗位&#xff0c;历经四面&#xff0c;收获蛮多的。 这篇文章&#xff0c;我想聊聊这次面试过程中的一些经历&#xff0c;以及些许经验和教训。 岗位要求 岗位名称&#xff1a;测试负责人 岗位要求&#xff1a;1、扎实的技术以及丰富的技术项目…

【半监督医学图像分割 2021 CVPR】CVRL 论文翻译

文章目录【半监督医学图像分割 2021 CVPR】CVRL 论文翻译摘要1. 介绍1.1 总览1.2 无监督对比学习2. 实验3. 总结【半监督医学图像分割 2021 CVPR】CVRL 论文翻译 论文题目&#xff1a;Momentum Contrastive Voxel-wise Representation Learning for Semi-supervised Volumetric…

Linux中systemctl 服务管理

1、概述CentOS 7使用Systemd管理守护进程。centos7采用 systemd管理&#xff0c;服务独立的运行在内存中&#xff0c;服务响应速度快&#xff0c;但占用更多内存。独立服务的服务启动脚本都在目录 /usr/lib/systemd/system里。Systend的新特性&#xff1a;系统引导时实现服务的…

手写JavaScript常见5种设计模式

想分享的几种设计模式 目前模式&#xff1a;工厂模式&#xff0c;单例模式&#xff0c;适配器模式&#xff0c;装饰者模式&#xff0c;建造者模式 建造者模式 简介&#xff1a;建造者模式&#xff08;builder pattern&#xff09;比较简单&#xff0c;它属于创建型模式的一种…

QT入门Input Widgets之QScrollBar

目录 一、界面布局功能 1、界面位置介绍 2、控件界面基本属性 2.1 horizontalScrollBar界面属性 3、样式设置 此文为作者原创&#xff0c;创作不易&#xff0c;转载请标明出处&#xff01; 一、界面布局功能 1、界面位置介绍 QScrollBar主要分为两种&#xff0c;一种垂直…

C语言(字符串输入)

目录 一.gets和puts组合 二.fgets()和fputs() 三.fgets()函数返回 四.fgets读取满问题 五.修改fgets函数,自动用\0替换\n 一.gets和puts组合 Gets()读取整行输入&#xff0c;知道遇到换行符&#xff0c;然后丢弃换行符&#xff0c;存储其余字符&#xff0c;并在这些字符的…

学习笔记:文件

因为有的数据&#xff0c;数据量极大。或者是你想把编译输出的内容存储起来&#xff0c;就可以使用文件 读文件中内容具体操作 来自C语言详解 FILE文件操作 - 知乎 (zhihu.com) 写入文件具体操作 同样来自 C语言详解 FILE文件操作 - 知乎 (zhihu.com) 当文件关闭时&#xff0c…

sql手工注入dvwa靶场

sql手工注入dvwa靶场 记录一下自己重新开始学习web安全之路④。 一、找交互点&#xff08;url、搜索框、登录框&#xff09; 在dvwa靶场中&#xff0c;发现有url&#xff0c;有搜索框。 二、找注入点&#xff08;通过 ’ 号来判断&#xff09; 思考一&#xff1a;为什么能通…

响应式圣经:10W字,实现Spring响应式编程自由

前言 全链路异步化改造的基础是响应式编程 随着业务的发展&#xff0c;微服务应用的流量越来越大&#xff0c;使用到的资源也越来越多。 在微服务架构下&#xff0c;大量的应用都是 SpringCloud 分布式架构&#xff0c;这种架构总体上是全链路同步模式。 全链路同步模式不仅…

膳食锌缺乏或过量对人体肠道菌群及健康的影响

谷禾健康 锌与肠道微生物 锌(Zn)是人体必需的微量元素&#xff0c;是人体中第二丰富的矿物质。锌在细胞和器官功能中起着关键的催化、调节和结构作用。 ★ 膳食锌缺乏或过量均不健康 锌缺乏与发育不良、免疫功能低下、味觉丧失、不良妊娠结局、脱发、皮肤损伤和神经行为异常有关…

数据结构 | 树 | 二叉树

&#x1f525;Go for it!&#x1f525; &#x1f4dd;个人主页&#xff1a;按键难防 &#x1f4eb; 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;和大家一起学习&#xff0c;一起进步&#x1f440; &#x1f4d6;系列专栏&#xff1a;数据结构与算法 &#x1f52…