当前位置: 首页 > news >正文

【分享】这篇教程助力你成为 JavaScript 糕手!(四)

第四章:运算符与表达式

在这里插入图片描述

4.1 算术运算符

在这里插入图片描述

加法运算符(+):用于数字相加,如console.log(5 + 3);结果为8。
当用于字符串时,它表示字符串拼接。例如console.log(‘Hello’+ ‘world’);输出Hello world。如果一个操作数是字符串,另一个操作数是其他类型(如数字),JavaScript 会将另一个操作数转换为字符串后再拼接。

减法运算符(-):用于数字相减,如console.log(7 - 2);结果为5。

乘法运算符(*:用于数字相乘,如console.log(4 * 6);结果为24。

除法运算符(/):用于数字相除,如console.log(8 / 2);结果为4。当除数为0时,在 JavaScript 中会得到Infinity(被除数为正数时)或-Infinity(被除数为负数时),而0 / 0会得到NaN。

取模运算符(%):返回除法运算的余数。例如console.log(7 % 3);结果为1。常用于判断数字的奇偶性(对2取模,余数为0是偶数,余数为1是奇数)等场景。

自增运算符(++)和自减运算符(–): 自增运算符有前置(++i)和后置(i++)两种形式。前置自增是先将变量的值加1,然后再使用变量的值;后置自增是先使用变量的值,然后再将变量的值加1。

var i = 5;
console.log(++i); // 输出6,i的值变为6
var j = 5;
console.log(j++); // 输出5,j的值变为6

自减运算符同理,前置自减(–i)先减1再使用,后置自减(i–)先使用再减1。

4.2 比较运算符

相等运算符(==):比较两个值是否相等,在比较时会进行类型转换。例如console.log(5 == ‘5’);结果为true,因为 JavaScript 会将字符串’5’转换为数字5后再比较。

严格相等运算符(===):比较两个值是否相等且类型也相同。例如console.log(5 === ‘5’);结果为false,因为它们类型不同;而console.log(5 === 5);结果为true。

不等运算符(!=):与相等运算符==相反,比较两个值是否不相等,会进行类型转换。例如console.log(5!= ‘5’);结果为false。

严格不等运算符(!==):与严格相等运算符=相反,比较两个值是否不相等且类型也不同。例如console.log(5! ‘5’);结果为true。

大于(>)和小于(<)运算符:用于比较两个数字的大小。例如console.log(8 > 3);结果为true,console.log(2 < 1);结果为false。如果比较的操作数不是数字类型,JavaScript 会尝试将其转换为数字后再比较,但这种转换可能会导致意外结果,比如console.log(‘8’ > ‘3’);结果为true(因为字符串会按字符编码值比较)。

大于等于(>=)和小于等于(<=)运算符:功能类似大于和小于运算符,只是包含等于的情况。例如console.log(5 >= 5);结果为true。

4.3 逻辑运算符

逻辑与运算符(&&):
当使用&&连接两个表达式时,只有当两个表达式的值都为true时,整个逻辑表达式的值才为true;如果第一个表达式的值为false,则不会计算第二个表达式(短路求值)。例如:

var a = 5;
var b = 10;
console.log((a > 3) && (b > 5)); // 结果为true
console.log((a > 10) && (b > 5)); // 结果为false,因为a > 10为false,不会计算b > 5

逻辑或运算符(||):
当使用||连接两个表达式时,只要其中一个表达式的值为true,整个逻辑表达式的值就为true;如果第一个表达式的值为true,则不会计算第二个表达式(短路求值)。例如:

var c = 3;
var d = 7;
console.log((c > 5) || (d > 5)); // 结果为true,因为d > 5为true,不会计算c > 5是否为true
console.log((c > 5) || (d < 5)); // 结果为false,因为c > 5和d < 5都为false
逻辑非运算符(!):对一个表达式的值取反。如果表达式的值为true,则!运算后的值

为false;如果表达式的值为false,则!运算后的值为true。例如console.log(!(5 > 3));结果为false。

4.4 赋值运算符

基本赋值运算符(=):将右边的值赋给左边的变量。例如var x = 5;。

加法赋值运算符(+=):a += b等价于a = a + b。例如var num1 = 5; num1 += 3;此时num1的值为8。

减法赋值运算符(-=):a -= b等价于a = a - b。

乘法赋值运算符(=)*:a *= b等价于a = a * b。

除法赋值运算符(/=):a /= b等价于a = a / b。

取模赋值运算符(%=):a %= b等价于a = a % b。

4.5 其他运算符

三元运算符(? :):语法为条件表达式? 表达式1 : 表达式2。如果条件表达式的值为true,则执行表达式1;如果条件表达式的值为false,则执行表达式2。例如var max = (5 > 3)? 5 : 3;,max的值为5。

相关文章:

【分享】这篇教程助力你成为 JavaScript 糕手!(四)

第四章&#xff1a;运算符与表达式 4.1 算术运算符 加法运算符&#xff08;&#xff09;&#xff1a;用于数字相加&#xff0c;如console.log(5 3);结果为8。 当用于字符串时&#xff0c;它表示字符串拼接。例如console.log(‘Hello’ ‘world’);输出Hello world。如果一个操…...

双亲委派模型的破坏

双亲委派模型的第一次“被破坏”其实发生在双亲委派模型出现之前--即JDK1.2发布之前。由于双亲委派模型是在JDK1.2之后才被引入的,而类加载器和抽象类java.lang.ClassLoader则是JDK1.0时候就已经存在,面对已经存在 的用户自定义类加载器的实现代码,Java设计者引入双亲委派模…...

Android关机流程知多少?

在 Android 中&#xff0c;关机流程涉及系统各个组件的协同工作&#xff0c;确保设备在断电之前能够安全地关闭所有活动并保存数据。以下是 Android 系统中关机流程的详细介绍&#xff1a; 1. 用户触发关机请求 关机流程由用户的操作触发&#xff0c;通常有以下几种方式&#…...

深入理解指针end(总结篇)

如果有不会的智识点&#xff0c;请移动到博主前四篇指针博客&#xff01; 可以当一个指针智商检阅博客看。 看看你是否掌握了这些知识 1&#xff1a;内存&#xff0c;指针变量 内存单元的编号地址指针&#xff1b; 指针变量和其他变量没有区别&#xff0c;指针变量是来存放…...

C# 程序暂停的两种方式

C# 程序暂停的两种方式&#xff1a;EventWaitHandle 与 volatile bool pause 在C#中&#xff0c;线程控制是多线程编程的重要组成部分&#xff0c;其中实现暂停的需求经常出现。本文将详细探讨使用EventWaitHandle和设置volatilebool来实现线程暂停的不同方式&#xff0c;它们…...

【LeetCode】【算法】160.相交链表

Leetcode 160. 相交链表 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 思路 AB&#xff0c;一个指针&#xff0c;访问完A访问B&#xff1b;另一个指针&#…...

光伏破局 引领能源革命

为进一步推进商业信用体系建设&#xff0c;促进企业诚实守信经营&#xff0c;面向企业普及诚信与品牌建设的意义&#xff0c;指导企业加强诚信品牌建设&#xff0c;提升其整体竞争力&#xff0c;“崛起的民族品牌”专题系列节目以诚信为内涵&#xff0c;在全国范围内遴选出有行…...

Jenkins声明式Pipeline流水线语法示例

系列文章目录 docker搭建Jenkins2.346.3版本及常用工具集成配置(ldap、maven、ansible、npm等) docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法 文章目录 系列文章目录jenkins流水线基础1、pipeline1.1、什么是pipeline&#xff1f;1.2、为什么使用pi…...

互联网技术净土?原生鸿蒙开启全新技术征程

鸿蒙生态与开发者的崭新机会 HarmonyOS NEXT承载着华为对未来操作系统的深刻理解&#xff0c;如今已发展为坚实的数字底座。它不仅在技术层面取得了全面突破&#xff0c;还在中国操作系统市场中站稳了脚跟。 当前&#xff0c;HarmonyOS NEXT的代码行数已超过1.1亿&#xff0c…...

关于Django 模型字段 `choices`自定义数据类型的枚举——补充

文章目录 1. 处理 datetime 类型的 choices2. 处理 time 类型的 choices3. 处理 Decimal 类型的 choices4. 处理 UUID 类型的 choices5. 处理 float 类型的 choices 在 Choices 类的基础上扩展&#xff0c;可以将 choices 与特定数据类型&#xff08;如 date 或 datetime&a…...

CAP理论的延申--BASE理论

上一篇文章我简单介绍了一下什么是CAP理论&#xff0c;本篇文章讲解一下随着技术的演变&#xff0c;CAP理论是如何发展为BASE理论的。 CAP理论回顾 首先我们回顾一下CAP理论&#xff0c;CAP理论指得是分布式系统发生网络等故障时&#xff0c;不同节点之间无法同步数据&#xf…...

【傻呱呱】phpMyAdmin怎样给特定用户授权特定数据库权限?

前期准备 phpMyAdmin数据库&#xff08;MySQL&#xff09; END...

『VUE』21. 组件注册(详细图文注释)

目录 组件注册局部注册全局注册全局注册示例总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 组件注册 组件注册有两种方式&#xff1a;全局注册和局部注册。全局注册只需要注册依次,其他组件可以直接调用无需再次像局部注册一…...

如何产看SQL 查询的执行时间

要查看 SQL 查询的执行时间&#xff0c;尤其是毫秒级别&#xff0c;可以使用以下几种方法&#xff1a; 方法 1&#xff1a;使用 SET STATISTICS TIME 查看执行时间 SET STATISTICS TIME 会显示执行时间的详细信息&#xff0c;包括 CPU 时间和总耗时。启用后&#xff0c;SQL S…...

计算机网络——路由器构成

算路由表是分布式去算——你算你的&#xff0c;我算我的 输出队列非先来先传 调度发生在哪里 缓存队列一般是应对——来数据方向的速度过快问题...

架构师之路-学渣到学霸历程-48

实现域名跳转的实验 今天继续还是分享域名跳转的实验&#xff1b;继续整&#xff0c;看看效果 意思就是你本来访问www.liangjiawei.net的网站然后跳转到blog.liangjiawei.net的网站 1、基础的环境部署 安装好nginx&#xff08;这里最好的就是干净的环境&#xff09;创建两个…...

HappyChart——一款简单好用的专业绘图软件

HappyChart是一款新出的专业绘图软件&#xff0c;灵感来自于类PS软件&#xff0c;它是以图层的方式进行绘图。相比与Excel图表或其他专业绘图软件&#xff0c;HappyChart界面简洁明了&#xff0c;操作简单&#xff0c;没有复杂的选项&#xff0c;它只调整绘图相关参数即可实时展…...

【Linux】进程信号全攻略(二)

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; 再谈信号的捕捉 &#x1f98b; 关于信号捕捉的细节部分&#xff08;sigaction函数&#xff09; 二&#xff1a;&#x1f525; 穿插话题 - 操作系统是怎么运…...

redis用法(二)

文章目录 02-redis数据类型篇生产环境下的redis实况图 1.全局命令redis数据存储格式set设置k-v查看当前redis的key的数量危险命令&#xff0c;新手请在于超老师陪同下执行为什么危险&#xff1f;如何正确搜索redis的key 查看库下有多少个key查询redis库信息切换redis库查看key是…...

Python-利用os,tkinter库编写一个伪恶意程序文件(Pro版)

前言&#xff1a;上一期我们简单学习了如何编写一个多次弹窗警告用户的exe伪恶意文件。我们知道了把Python初始文件编译为exe文件后&#xff0c;程序在没有Python环境的情况下也能正常运行。我们上次编写的程序仅仅只是伪造系统正在执行关机命令前的倒计时的假象&#xff0c;实…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API&#xff0c;让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API&#xff0c;你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...