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

【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>

结果:

 

相关文章:

  • 时间自动填写——电子表格公式的遗憾(DeepSeek)
  • 品融电商:领航食品类目全域代运营,打造品牌增长新引擎
  • EasySearch 服务昨天还好好的,为什么今天突然访问不了了?
  • Java面试题汇总
  • FI固定资产折旧码的功能用途及其配置介绍
  • 【CSS】层叠,优先级与继承(三):超详细继承知识点
  • 推荐系统排序阶段核心要点:多目标排序模型详解
  • UnoCSS原子CSS引擎-前端福音
  • 15.FineReport动态展示需要的列
  • 数据库-基本概述 和 SQL 语言
  • 记录一次OGG进程abended,报错OGG-01431、OGG-01003、OGG-01151、OGG-01296问题的处理
  • C++入门基础(2)
  • Generative AI for Krita - Krita 生成式 AI 插件
  • 【QT】信号与槽中多个按钮(pushbutton)共用一个槽函数的两种实现方式
  • centos7部署k8s集群
  • pytorch(gpu版本安装)
  • 记录一下线性回归的学习
  • iThenticate英文查重系统怎么用?
  • LeetCode-417. 太平洋大西洋水流问题
  • 4.23晚间工作总结
  • 宁德时代与广汽等五车企发布10款巧克力换电新车型:年内将完成30城1000站计划
  • 2025航天文化艺术论坛在上海举办
  • 郑庆华任同济大学党委书记
  • 欧盟就中欧有关世贸争端案件提起上诉仲裁,商务部回应
  • “仅退款”将成过去时!多个电商平台集体修改售后规则,商家获得更多自主权
  • 中国泳协:新奥运周期竞争激烈,“三从一新”全力提升实力