当前位置: 首页 > 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;实…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

加密通信 + 行为分析:运营商行业安全防御体系重构

在数字经济蓬勃发展的时代&#xff0c;运营商作为信息通信网络的核心枢纽&#xff0c;承载着海量用户数据与关键业务传输&#xff0c;其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级&#xff0c;传统安全防护体系逐渐暴露出局限性&a…...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用&#xff0c;前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率&#xff0c;还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库&#xff08;Naive UI、Element …...

【AI News | 20250609】每日AI进展

AI Repos 1、OpenHands-Versa OpenHands-Versa 是一个通用型 AI 智能体&#xff0c;通过结合代码编辑与执行、网络搜索、多模态网络浏览和文件访问等通用工具&#xff0c;在软件工程、网络导航和工作流自动化等多个领域展现出卓越性能。它在 SWE-Bench Multimodal、GAIA 和 Th…...

SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈

【导读】 本文针对无人机&#xff08;UAV&#xff09;视频中目标尺寸小、运动快导致的多目标跟踪难题&#xff0c;提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪&#xff08;贴合无人机场景特性&#xff09;&#xff0c;并改进传统外观匹配算法以关联此类检测…...