【JavaScript】详讲运算符--算术运算符
1、运算符简介
运算符也叫操作符,通过运算符可以对一个或多个值进行运算,比如:typeof就是运算符,可以来获得一个值的类型,它会将该值的类型以字符串的形式返回,即:typeof 变量名的结果为字符串类型。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var a=123;var ch=typeof a;document.writeln(typeof ch);document.writeln("<br>")document.writeln(ch);</script>
</head>
<body>
</body>
</html>
结果:
2、算术运算符(是二元运算符,即运算时需要两个操作数)
(1)+(可以对两个值进行加法运算,并将结果返回)
当对非Number类型的值进行+运算时,会将这些值转换为Number类型,然后再运算。(除了字符串,其他情况都符合该规则)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var a=true +false; //true对应的Number类型的值为1,而false对应的值为0document.writeln(a)</script>
</head>
<body>
</body>
</html>
结果:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var a=null +1; //null对应的Number类型的值为0document.writeln(a)</script>
</head>
<body>
</body>
</html>
结果:
特殊情况1:任何值和NaN做运算都得NaN
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var a=NaN +1;document.writeln(a)</script>
</head>
<body>
</body>
</html>
结果:
特殊情况2:如果对两个字符串进行加法运算,则会将这两个字符串拼接为一个字符串,并返回。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var a="123"+"456";document.writeln(a)</script>
</head>
<body>
</body>
</html>
结果:
特殊情况3:任何的值和字符串做加法运算,都会先将该值转换为字符串,然后再和字符串做拼接。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch=1+'123'; //现将1转换为字符串'1'document.writeln(ch);</script>
</head>
<body>
</body>
</html>
结果:
特殊情况4:任何的值和字符串做加法运算,都会先将该值转换为字符串,然后再和字符串做拼接。,我们可以利用这一特性,来将任意的数据类型转换为字符串,方法为:该值+“”(空字符串),这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用String()函数。例如:var=123;c=c+""与c=String(c)二者本质上是一样的。、
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch=123+"";document.writeln(typeof ch);document.writeln("<br>")document.writeln(ch);</script>
</head>
<body>
</body>
</html>
结果:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch=null+"";document.writeln(typeof ch);document.writeln("<br>")document.writeln(ch);</script>
</head>
<body>
</body>
</html>
结果:
练习1:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var res=1+2+'3';//从左往右算,先计算1+2==3,然后计算:3+'3',先将数字3转换为字符串’3'然后‘3’+‘3’做拼接document.writeln(res);</script>
</head>
<body>
</body>
</html>
结果:
练习2:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var res='1'+2+3;//从左往右算,先计算1+2==3,然后计算:‘1’+2,先将数字2转换为字符串’2'然后做拼接,结果为:‘12’//然后‘12’+3,现将3转换为’3‘,然后’12‘+’3‘做拼接。document.writeln(res);</script>
</head>
<body>
</body>
</html>
结果:
(2)-(可以对两个值进行减法运算,并将结果返回)
注意:除了字符串与其他类型的值做加法外,字符串都会先转换为Number类型
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch=12-'10';document.writeln(ch);</script>
</head>
<body>
</body>
</html>
结果:
(3)*(可以对两个值进行乘法运算,并将结果返回)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch=12*2;document.writeln(ch);</script>
</head>
<body>
</body>
</html>
结果:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch=12*'4';document.writeln(ch);</script>
</head>
<body>
</body>
</html>
结果:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch=12*null;var ch1=12*undefineddocument.writeln(ch);document.writeln(ch1);</script>
</head>
<body>
</body>
</html>
结果:
(4)/(注意:这里与C++中的不一样,在JS中会带小数)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch=12/2;var ch1=3/2;document.writeln(ch);document.writeln(ch1);</script>
</head>
<body>
</body>
</html>
结果:
(5)总结:任何值做 - * / 运算时,都会自动转换为Number,可以利用这一特点做隐式类型转换,可以通过为一个值-0, *1 /1来将其转换为Number,原理和Number()函数一致,用起来更加简单。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch='12'-0;document.writeln( typeof ch);document.writeln(ch);</script>
</head>
<body>
</body>
</html>
结果:
(6)%(取模运算,即:取余数)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var ch=12%5;document.writeln(ch);</script>
</head>
<body>
</body>
</html>
结果:
相关文章:
【JavaScript】详讲运算符--算术运算符
1、运算符简介 运算符也叫操作符,通过运算符可以对一个或多个值进行运算,比如:typeof就是运算符,可以来获得一个值的类型,它会将该值的类型以字符串的形式返回,即:typeof 变量名的结果为字符串类型。 <…...
.NET 6 + Dapper + User-Defined Table Type
大家都知道,对于SQL Server IN是有限制条件的,如果IN里面的内容过多,在执行的时候会被自动截断,因而导致查询到的结果不是实际需要的结果。 select * from Payments where Id in (1,2,3,4,...) 为了解决上面的限制,可以…...
使用 Conda 创建新环境
使用 Conda 创建新环境 在使用 Conda 进行包管理和环境隔离时,创建新环境是一个非常常见的操作。通过创建独立的环境,可以避免不同项目之间的依赖冲突,并且能够灵活地管理各个项目的运行环境。 以下是使用 Conda 创建和管理新环境的详细步骤…...
数据为基:机器学习中数值与分类数据的处理艺术及泛化实践
数据为基:机器学习中数值与分类数据的处理艺术及泛化实践 摘要 在机器学习实践中,数据质量对模型效果的影响往往超过算法选择。本文通过详实的案例解析,系统阐述数值型数据与分类数据的特征工程处理方法,揭示数据预处理对模型泛…...
Docker镜像与容器概念解析
Docker镜像与容器概念解析 -更适合大学生宝宝体制的docker学习指南 一、Docker镜像:应用程序的基因库 (1)本质特征:镜像是一个只读的二进制文件包,相当于应用程序的”基因图谱”。就像生物体的DNA决定了生物特征&a…...
基于GMM的语音识别
语音识别是近年来发展非常迅速的一项计算机智能技术,广泛应用在语音控制、身份识别等多个领域。本次项目主要研究语音识别的预处理过程和特征参数的提取环节。通过对原始语音信号进行预加重和分帧、加窗,滤除低频干扰,提升对语音识别有用的部…...
K8S安全认证
一。用户认证的基本框架 在K8S集群中,客户端通常有两类: 1.User Account:一般独立于K8S之外的其他服务管理的用过户账号 2.Service Account:K8S管理的账号,用于为Pod中的服务进程在访问K8S提供身份标识 ApiServer是…...
咖啡机语音芯片方案-WTN6040FP-14S直接驱动4欧/3W喇叭-大功率输出
一、开发背景 随着智能家居市场的快速发展和消费者对家电产品交互体验要求的不断提高,语音提示功能已成为现代咖啡机产品的重要卖点之一。传统咖啡机仅依靠指示灯和简单蜂鸣器提示,无法满足用户对操作引导、状态反馈和个性化体验的需求。 WTN6040FP-14大…...
Vue3集成百度实时语音识别
示例 SpeechRecognitionModal.vue 组件 <template><transition name"modal-fade"><div v-if"isOpen" class"modal-overlay" click.self"handleOverlayClick"><div class"modal-container"><div…...
C# 设计原则总结
跟着视频学习的,记录一下最后的总结。 接口隔离: 单一职责: 里氏替换: 依赖倒置; 迪米特法则; 开闭原则:...
zkPass案例实战之合约篇
目录 一、contracts/contracts/ProofVerifier.sol 1. License 和 Solidity 版本 2. 导入依赖 3. 合约声明和默认分配器地址 4. 验证证明 5. 验证分配器签名 6. 验证验证者签名 7. 签名前缀处理 8. 签名恢复 总结 二、contracts/contracts/SampleAttestation.sol 1. …...
docker学习笔记5-docker中启动Mysql的最佳实践
一、查找目录文件位置 1、mysql的配置文件路径 /etc/mysql/conf.d 2、mysql的数据目录 /var/lib/mysql 3、环境变量 4、端口 mysql的默认端口3306。 二、启动命令 1、启动命令说明 docker run -d -p 3306:3306 -v /app/myconf:/etc/mysql/conf.d # 挂载配置目录 -v…...
彻底禁用windows的语音识别快捷键win+ctrl+s
工作中经常使用ctrls保存,但是经常误触win,结果弹出如下对话框,甚是闹心: 搜索网络,问AI,竟然没有一个好用的不依赖常驻内存软件的办法,最终经过探索与验证,总算是彻底解决了此问题&…...
大数据学习(112)-Analytic函数集
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…...
文档构建:Sphinx全面使用指南 — 实战篇
文档构建:Sphinx全面使用指南 — 实战篇 Sphinx 是一款强大的文档生成工具,使用 reStructuredText 作为标记语言,通过扩展兼容 Markdown,支持 HTML、PDF、EPUB 等多种输出格式。它具备自动索引、代码高亮、跨语言支持等功能&#…...
欧拉环境(openEuler 22.03 LTS SP3)安装移动磐维数据库(PanWeiDB_V2.0-S2.0.2_B01)步骤
一、磐维数据库概述 中国移动磐维数据库(ChinaMobileDB),简称“磐维数据库”(PanWeiDB),是中国移动信息技术中心首个基于中国本土开源数据库打造的面向ICT基础设施的自研数据库产品。其产品内核能力基于华…...
【产品经理从0到1】产品规划
产品规划 已经知道要做什么功能,展示什么信息,那这些信息应该 以什么方式展现给用户? 信息架构的概念 一般的商场导览图,都有以下特征: • 每一层都由多个店铺组成; • 商场有出口,有入口&am…...
一篇文章学会开发第一个ASP.NET网页
*开发环境:Visual Studio 2022 ASP.NET Core 6.0* 一、开发环境准备 1.1 安装必备工具 Visual Studio 2022 Community(免费版本) .NET 6.0 SDK 验证安装:命令行执行 dotnet --version 显示6.0.x版本 1.2 创建新项目 打开VS…...
[架构之美]Ubuntu源码部署APISIX全流程详解(含避坑指南)
[架构之美]Ubuntu源码部署APISIX全流程详解(含避坑指南) 一、离线安装场景需求分析 1.1 典型应用场景 金融/政务内网环境生产环境安全合规要求边缘计算节点部署1.2 离线安装难点 #mermaid-svg-B25djI0XquaOb1HM {font-family:"trebuchet ms",verdana,arial,sans-s…...
【3】CICD持续集成-k8s集群中安装Jenkins-agent(主从架构)
一、背景: Jenkins Master/Slave架构,Master(Jenkins本身)提供Web页面让用户来管理项目和从节点(Slave),项目任务可以运行在Master本机或者分配到从节点运行,一个Master可以关联多个…...
2024从Maven-MySQL-Nginx部署
1、IDEA配置全局Maven设置 第一步:File->Close Project返回到创建工程界面。 第二步:找到bulid---maven设置对应位置。 第三步:选中两栏后的Override---应用---关闭即可。 *************************************************************…...
MySQL运算符
目录 一、mysql运算符 1. 算数运算符 2. 比较运算符 2.1 等号运算符() 2.2 不等于运算符 ! 3.非符号类型的运算符 3.1 空运算 IS NULL、 IS NOT NULL、 ISNULL 3.2 区间查询 BETWEEN 3.3 包含查询 IN、 NOT IN 3.4模糊查询LIKE 4. 逻辑运算符 4.1 AND(逻…...
什么是区块?
“区块”是区块链技术的基本组成部分,是加密货币交易的数字记录簿。一个区块就像是账本中的一页,详细记录了所有的交易细节。每个区块都包含基本信息,如最近的交易列表、标记区块创建时间的时间戳,以及称为“哈希值”的唯一加密代…...
爬虫学习——获取动态网页信息
对于静态网页可以直接研究html网页代码实现内容获取,对于动态网页绝大多数都是页面内容是通过JavaScript脚本动态生成(也就是json数据格式),而不是静态的,故需要使用一些新方法对其进行内容获取。凡是通过静态方法获取不到的内容,…...
LSA六种类型
LAS --- 链路状态通告 链路状态类型、链路状态ID、通告路由器 --- LSA的三元组 --- 可以唯一标识出一条LSA Type --- OSPFv2中,常见的需要掌握LSA有6种 LS ID --- LSA的名字 --- 因为每一种LSA ID的生成方式都不相同,所以导致可能重复,则如…...
第七篇:linux之基本权限、进程管理、系统服务
第七篇:linux之基本权限、进程管理、系统服务 文章目录 第七篇:linux之基本权限、进程管理、系统服务一、基本权限1、什么是权限?2、为什么要有权限?3、权限与用户之间的关系?4、权限对应的数字含义5、使用chmod设定权…...
时序约束 记录
一、基础知识 1、fpga的约束文件为.fdc,synopsys的约束文件为.sdc。想通过fpga验证soc设计是否正确,可以通过syn工具(synplify)吃.fdc把soc code 转换成netlist。然后vivado P&R工具通过吃上述netlist、XDC 出pin脚约束、fdc时序约束三个约束来完成…...
fpga系列 HDL:跨时钟域同步 脉冲展宽同步 Pulse Synchronization
Pulse Synchronization 脉冲同步(Pulse Synchronization)是 FPGA 设计中处理跨时钟域信号传输的常见问题和关键细节。由于不同步的时钟域之间可能存在相位差或频率差异,可能会导致亚稳态问题或数据丢失。脉冲同步的主要目标是确保一个时钟域中…...
链表系列一>两数相加
目录 题目:解析:方法:代码:链表常用技巧: 题目: 链接: link 解析: 方法: 代码: /*** Definition for singly-linked list.* public class ListNode {* int val;* …...
MCP接入方式介绍
上一篇文章,我们介绍了MCP是什么以及MCP的使用。 MCP是什么,MCP的使用 接下来,我们来详细介绍一下MCP的接入 先看官网的架构图 上图的MCP 服务 A、MCP 服务 B、MCP 服务 C是可以运行在你的本地计算机(本地服务器方式ÿ…...
嵌入式WebRTC音视频实时通话EasyRTC助力打造AIOT智能硬件实时通信新生态
一、背景 在当今智能化时代,智能硬件设备正迅速融入人们的生活和工作中,从智能家居、智能穿戴到工业物联网,智能硬件的应用场景不断拓展。实时通信技术作为智能硬件的重要组成部分,能够实现设备之间的无缝连接和交互。基于WevRTC…...
Linux的进程间通信
目录 进程间通信介绍 进程间通信的概念 主要IPC方式 进程间通信的目的 进程间通信的本质 进程间通信的分类 管道 什么是管道 匿名管道 匿名管道的原理 pipe函数 匿名管道使用步骤 管道读写规则 匿名管道的特点 管道的四种特殊情况 管道的大小 命名管道 命名管…...
基于nodeJS代码的通过爬虫方式实现tiktok发布视频(2025年4月)
1、将真实的tiktokstudio平台的cookie填到代码里的cookie变量里,修改python代码里的ticket,ts, privateKey,以及videoPath,timing等变量的值,最后运行python脚本即可; 2、运行之前根据import提示安装一些常见依赖,比如node-fetch等; 3、运行时候可能系统需要科学上网…...
邮件被标记为垃圾邮件怎么办
1. 找出问题原因 先看看邮件内容有没有用到像“免费”“促销”这类容易触发垃圾邮件过滤的词,或者格式是不是太乱(比如图片太多、代码复杂等)。再确认一下发件人地址或IP有没有上黑名单,可以用工具查一查。 2. 修复发件人信誉 …...
视频监控从安装到优化的技术指南,视频汇聚系统EasyCVR智能安防系统构建之道
在当今数字化安防时代,监控系统的安装与配置对于保障各类场所的安全起着至关重要的作用。从前期规划到实际安装,再到后期的功能实现与维护,每一个环节都不容小觑。本文将详细阐述监控安装过程中的关键要点,并结合EasyCVR平台功能&…...
.NET 6 WPF 利用CefSharp.Wpf.NETCore显示PDF文件
在WPF程序中,我们可以有多种方式显示PDF文件,但是目前发现的性能最好的是CefSharp.Wpf.NETCore。 CefSharp.Wpf.NETCore是一款开源软件。https://github.com/cefsharp/CefSharp。 它提供了WPF版本和WinForm版本,可根据自己的需要进行安装。…...
Hi3518E官方录像例程源码流程分析(五)
文章目录 Venc理论部分阶段五 开始视频流编码SAMPLE_COMM_VENC_Start()s32Ret SAMPLE_COMM_SYS_GetPicSize(enNorm, enSize, &stPicSize);创造Venc channal 码率控制CBRFIXQPVBRHI_MPI_VENC_CreateChnHI_MPI_VENC_StartRecvPic SAMPLE_COMM_VENC_BindVpss 绑定VPsschn0 到…...
JavaScript性能优化实战(3):内存管理与泄漏防范
JavaScript内存模型与垃圾回收机制解析 JavaScript作为一种高级编程语言,其内存管理过程对开发者而言大部分是透明的,但了解其内存模型和垃圾回收机制对于编写高性能应用至关重要。 JavaScript的内存分配与管理 JavaScript引擎在执行代码时会自动为变量和对象分配内存,主…...
基于自主大型语言模型代理的AIoT智能家居
中文标题:基于自主大型语言模型代理的AIoT智能家居 英文标题:AIoT Smart Home via Autonomous LLM Agents 作者信息 Dmitriy Rivkin, Francois Hogan, Amal Feriani, Abhisek Konar, Adam Sigal, Xue Liu, Gregory Dudek 论文出处 《IEEE Internet o…...
Maven 手动添加 JAR 包到本地仓库笔记
Maven 手动添加 JAR 包到本地仓库笔记 背景 Maven 默认从中央仓库(repo1.maven.org)自动下载依赖,但在以下场景中可能遇到问题: 网络限制: 国内访问 Maven 中央仓库速度较慢(尤其未配置镜像时)…...
CS 系列 USB3.0 工业面阵相机不同快门类型的作用及其区别
关于 CS 系列 USB3.0 工业面阵相机 中不同快门类型的作用及其区别的详细分析: 1. 快门类型概述 工业面阵相机的快门类型主要分为 机械快门、电子快门(包括全局快门和滚动快门)和 电子前帘快门,但机械快门在工业相机中较少见&…...
【官方正版,永久免费】Adobe Camera Raw 17.2 win/Mac版本 配合Adobe22-25系列软
Adobe Camera Raw 2025 年 2 月版(版本 17.2)。目前为止最新版新版已经更新2个月了,我看论坛之前分享的还是2024版,遂将新版分享给各位。 Adobe Camera Raw,支持Photoshop,lightroom等Adobe系列软件&#…...
怎么减少tcp 的time_wait时间
减少 TCP 连接的 TIME_WAIT 状态时间是运维中常见的优化问题,尤其是在高并发和大量短连接的场景下,过多的 TIME_WAIT 会占用系统资源,影响系统性能。下面是一些常见的优化方法和措施。 🔹 1. 修改 TCP 参数 ✅ 调整 tcp_fin_time…...
RK3568平台开发系列讲解(调试篇)debugfs API接口及案例
更多内容可以加入Linux系统知识库套餐(教程+视频+答疑) 🚀返回专栏总目录 文章目录 一、Debugfs API1.1、创建目录和文件1.2、导出数字1.3、绑定一个 size_t 类型的变量1.4、绑定一个 u32 类型的变量1.5、绑定一块二进制数据1.6、绑定到一堆寄存器集合1.7、修改 debugfs…...
文件【Linux操作系统】
文章目录 文件前置知识访问文件之前,为什么文件必须打开?文件的管理 标准流标准错误流的作用是什么? 进程和文件的关系在用户层面文件描述符是访问文件的唯一方式,因为系统调用接口只能通过文件描述符来找到对应的文件 操作文件的…...
PVT曲线:预测高分子材料收缩与翘曲的“热力学密码”
在高分子材料的广阔领域中,PVT 曲线作为一种关键的研究工具,正逐渐展现出其不可忽视的重要性。PVT 曲线,即聚合物材料的压力(Pressure)、体积(Volume)和温度(Temperature)…...
IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等
Quarkus框架学习的第一部分,请访问: IDEA中Quarkus框架(3.13版本)开发、调试、部署、打包等 五、docker-compose容器编排 1、创建编排文件 cd quarkus-helloworldvi docker-compose.ymldocker-compose.yml内容如下: # yaml 配置实例 ver…...
vue+django+LSTM微博舆情分析系统 | 深度学习 | 食品安全分析
文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! 编号: D031 LSTM 架构:vuedjangoLSTMMySQL 功能: 微博信息爬取、情感分析、基于负面消极内容舆情分析…...
CSS初识
CSS能够对⽹⻚中元素位置的排版进⾏像素级精确控制,实现美化⻚⾯的效果.能够做到⻚⾯的样式和结构分离。 可以理解给页面化妆,美化排版。 基本语法规范 选择器{⼀条/N条声明} 选择器决定针对谁修改(找谁) 声明决定修改啥(⼲啥) 声明的属性是键值对,…...
Kafka 主题设计与数据接入机制
一、前言:万物皆流,Kafka 是入口 在构建实时数仓时,Kafka 既是 数据流动的起点,也是后续流处理系统(如 Flink)赖以为生的数据源。 但“消息进来了” ≠ “你就能处理好了”——不合理的 Topic 设计、接入方…...