运算符

在程序的运行和开发当中呢,都涉及到运算,我们来了解一下JS中的运算符。以下为运算符篇的学习目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUpCWfpt-1648709903832)(02-JS运算符md.assets/1648262568215.png)]

算术运算符

目标:握算术运算符,能写出一些具备运算能力的小程序

1.什么是算数运算符?

数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。

  • +:求和
  • -:求差
  • *:求积
  • /:求商
  • %:取模(取余数)
    • 取模在开发中经常作为某个数字是否被整除

2.算数运算符的优先级

同时使用多个运算符编写程序时,会按着某种顺序先后执行,我们称为优先级。
JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。

  • 乘、除、取余优先级相同

  • 加、减优先级相同

  • 乘、除、取余优先级大于加、减

  • 使用 () 可以提升优先级

    总结: 先乘除后加减,有括号先算括号里面的

3.练习

计算出下方图片中的表达式结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WQIj3i0M-1648709903833)(02-JS运算符md.assets/1648262987624.png)]

结果显示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PDcTdcNs-1648709903833)(02-JS运算符md.assets/1648263066973.png)]

赋值运算符

1.什么是赋值运算符?

赋值运算符:对变量进行赋值的运算符。(就是在之前变量的学习中,给变量进行赋值)

已经学过的赋值运算符:= 将等号右边的值赋予给左边, 要求左边必须是一个变量

2.赋值运算符的执行过程

将等号右边的值赋予给左边, 要求左边必须是一个变量

3.其他的赋值运算符

使用这些运算符可以在对变量赋值时进行快速操作

  • +=

  • -=

  • *=

  • /=

  • %=

    (+= *= 等出现是为了简化代码)

3.赋值运算符的使用

  1. 以前我们让一个变量加 1 如何做的?

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKaSkO6C-1648709903833)(02-JS运算符md.assets/1648263325048.png)]

    写的方式比较繁琐,要来回写变量名称,那是否有一种比较简洁的方式来实现更加高效的写法呢?

  2. 可以使用赋值运算符来提高效率,使代码更加简洁

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hbxhwVY0-1648709903834)(02-JS运算符md.assets/1648263526650.png)]

    代码:

        <script>let num = 1 //想要让num加1num = num + 1 //这是之前的做法console.log(num);//使用赋值运算符进行计算num += 1 //num +=1 等于 num = num+1 这是经过简化得来的console.log(num);// 让变量乘以5let a = 10a *= 5console.log(a); //输出结果为50  表达式等同于 a = a * 5</script>
    

一元运算符

1什么是一元运算符?

只需要一个表达式就可以运算的运算符叫一元运算符

众多的 JavaScript 的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符(二元就是变量由两个表达式参与运算得出,同理三元也是)

2.作用

使用前置或者后置运算符进行计算,简化代码

3.前置后置自增自减运算符

  1. 什么是自增自减符号

    • 自增符号:++;作用:让变量的值 +1
    • 自减符号:–;作用:让变量的值 -1
  2. 使用场景

    经常用于计数来使用。 比如进行10次操作,用它来计算进行了多少次了

  3. 何为前置跟后置呢(自增自减写法相同,此地只放自增的指示图)

    • 前置自增:每执行1次,当前变量数值加1,其作用相当于 num += 1

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ph7TS6tv-1648709903834)(02-JS运算符md.assets/1648264503221.png)]

    • 后置自增:每执行1次,当前变量数值加1,其作用相当于 num += 1

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ukmQplws-1648709903834)(02-JS运算符md.assets/1648264550045.png)]

  4. 前置跟后置单独使用时没有区别

    代码:

        <script>// 递增运算符需要和变量一起使用let unm = 12, unm1 = 10//前置递增运算符 ++ 写在变量前面  ++unm   //等同于 age = age +1console.log(unm); //输出为13 相当于num = num+1--unm1console.log(unm1);// 输出为9 相当与num1 = num1-1</script>
    
  5. 自增/减运算符前置或后置的差异

    虽然说前置跟后置独自使用时没有区别,但是当它们参与运算时就有区别了

    • 前置自增:先自加再使用(记忆口诀:++在前 先自加1,再运算)→利己主义,先管好自己

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XBhYe3s3-1648709903834)(02-JS运算符md.assets/1648265005178.png)]

      代码展示:

          <script>// 递增运算符需要和变量一起使用let unm = 12, unm1 = 10//前置递增运算符 ++ 写在变量前面  ++unm   //等同于 age = age +1console.log(unm); //输出为13 相当于num = num+1</script>
      
    • 后置自增:先使用再自加(记忆口诀:++在后 先使用原值,后自加1) →先大家后小家

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQLNkPIT-1648709903834)(02-JS运算符md.assets/1648265023404.png)]

      代码展示:

          <script>// 后置递增运算符   ++写在变量后面let num = 10num++console.log(num); //输出为11  后置运算符单独使用是跟前置运算符没有区别// 那为什么还要分为前置跟后置呢? 原因是后置自增的口诀为:“先返回原值,后自加1”let age = 18console.log(age++ + 10);  //大局为重,自己先不变。先国家后小家//输出为28,age++ 是先返回原值也就是说age++等于age,18+10=28;//运算完式子之后,才会自行加1console.log(age); //19 </script>
      
  6. 自增运算符的用法

    • 前置自增和后置自增独立使用时二者并没有差别!
    • 一般开发中我们都是独立使用
    • 后面 i++ 后置自增会使用相对较多
  7. 小练习

    计算该面试题,是否能够得出正确的结果

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vkDItRoP-1648709903835)(02-JS运算符md.assets/1648265543899.png)]

    • 代码块:最终结果是7

          <script>let i = 1console.log(i++ + ++i + i);</script>
      

比较运算符

比较运算符

  • : 左边是否大于右边
  • <: 左边是否小于右边
  • =: 左边是否大于或等于右边
  • <=: 左边是否小于或等于右边
  • ==: 左右两边是否相等,将两边的数据进行转换为数值
  • ===: 左右两边是否类型和值都相等
  • !==: 左右两边是否不全等
  • 比较结果为boolean类型,即只会得到true或false

作用

1.比较两个数据大小、是否相等

代码块:

    <script>console.log(3 >= 5);//  false  js中,大于等于号是>=console.log(3 <= 5);//  true js中,小于等于号是<=console.log(3 == '2'); //false  判断两边的值是否相等,此处有隐式转换,将字符串类型的数据自动转换成数字型console.log(3 == '3'); //true console.log(5 === '5');//false 全等 判断两边的值跟数据类型是否完全相同console.log(5 === 5)//true </script>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-94DodanL-1648709903835)(02-JS运算符md.assets/1648351211487.png)]

2.字符串作大小比较的标准

本质:把字符串转换成数字再比较

如果拿字符串去做大小运算,判断的标准是ASCII表格,根据其中的计算方法来将字符串转换成数字,在进行大小比较。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q77vwqXf-1648709903835)(02-JS运算符md.assets/1648351376575.png)]

细节

  1. 字符串比较,是比较的字符对应的ASCII码

    1. 从左往右依次比较
    2. 如果第一位一样再比较第二位,以此类推
    3. 比较的少,了解即可
  2. NaN不等于任何值,包括它本身(可能是字符串a,或者是b字符串,无法保证两个值的内容等同,不能光看表面)
  3. 尽量不要比较小数,因为小数有精度问题
  4. 不同类型之间比较会发生隐式转换
    1. 最终把数据隐式转换转成number类型再比较
    2. 所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
  5. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6HtF38gm-1648709903835)(02-JS运算符md.assets/1648429900826.png)]

总结代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wZ6irmX6-1648709903835)(02-JS运算符md.assets/1648351892486.png)]

逻辑运算符

逻辑运算符是给程序判断运算是否正确的,正确输出true 错误的输出false

作用

逻辑运算符用来解决多重条件判断

使用方法

符号 名称 日常读法 特点 口诀
&& 逻辑与 并且 符号两边都为true结果才为true 一假则假
|| 逻辑或 或者 符号两边有一个true就为true 一真则真
! 逻辑非 取反 true变falsefalse变true 真变假,假变真

代码块:

    <script>//1. 逻辑与&&  全为true 才为true 否则都是falseconsole.log(5 > 3 && 3 > 2); // trueconsole.log(5 < 3 && 3 > 2); // false//2.逻辑或||  全为false 才为false 其余都为trueconsole.log(5 < 3 || 3 > 2); //trueconsole.log(5 < 3 || 3 < 2);//false//3.逻辑非!console.log(!true);//falseconsole.log(!false);//true</script>

短路运算

原理:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XlqaHwG1-1648709903836)(02-JS运算符md.assets/1648354655093.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lJJccWsF-1648709903836)(02-JS运算符md.assets/1648428956836.png)]

1.表现

只存在于 && 和 || 中,当满足一定条件会让右边代码不执行

2.原因

原因:通过左边能得到整个式子的结果,因此没必要再判断右边

3.运算结果

无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值

符号 短路条件
&&(找假) 左边为false就短路
||(找真) 左边为true就短路

代码块:(逻辑与:找假,出现假的代码就错了,停止右边的运算),(逻辑或:找真,找到真的代码就成立,停止右边的运算)

    <script>// 逻辑与&&  (找假:1.第一个是真的,那我就输出第二个;2.第一个是假的,就直接输出)//逻辑与 第一个表达式为真,就输出第二个表达式;// 第一个表达式为假,就输出第一个表达式console.log(123 && 456); //456console.log(0 && 456); //456//逻辑或|| (找真:1.第一个是真的 ,直接输出第一个;第一个是假的,直接输出第二个)//逻辑或  第一个表达式输出为真,则输出第一个表达式// 第一个表达式为假,就输出第二个表达式console.log(123 || 0); //123  第一个是真的,直接输出第一个console.log(0 || 345); //345 第一个是假的,直接输出第二个</script>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U58i8FJy-1648709903836)(02-JS运算符md.assets/1648363869515.png)]

运算符优先级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UIQvlbx1-1648709903836)(02-JS运算符md.assets/1648266683145.png)]

注意:

  • 一元运算符里面的逻辑非优先级最高
  • 逻辑与比逻辑或优先级高

练习

根据优先级判断下方的结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VJoSjgFH-1648709903836)(02-JS运算符md.assets/1648266891026.png)]

代码块:

    <script>let a = 3 > 5 && 2 < 7 && 3 == 4console.log(a);let b = 3 <= 4 || 3 > 1 || 3 != 2console.log(b);let c = 2 === "2"console.log(c);let d = !c || b && aconsole.log(d);</script>

结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5T9ZN53i-1648709903836)(02-JS运算符md.assets/1648266944898.png)]

练习

根据优先级判断下方的结果

[外链图片转存中…(img-VJoSjgFH-1648709903836)]

代码块:

    <script>let a = 3 > 5 && 2 < 7 && 3 == 4console.log(a);let b = 3 <= 4 || 3 > 1 || 3 != 2console.log(b);let c = 2 === "2"console.log(c);let d = !c || b && aconsole.log(d);</script>

结果:

[外链图片转存中…(img-5T9ZN53i-1648709903836)]

02-JS运算符md相关推荐

  1. 02 . JS 运算符 + 流程控制

    算数运算符 ------------------------------------- console.log(1 + 1); // 2console.log(1 - 1); // 0console. ...

  2. js运算符单竖杠“|”的用法和作用及js数据处理

    js运算符单竖杠"|"的作用 很多朋友都对双竖杠"||",了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用 ...

  3. JavaScript深入【表达式和运算符(上集)】你能过我8关js运算符的题目吗?

    博主留言 (茗洋芳竹) 每一个高手成功之路,都要学会怎样与孤独打交道 .我是个傻孩子,孤独竟然是我的夫人,每天晚上都会坐在我旁边看我学习,写博客.马上要离开ASP.NET生涯,投奔PHP了,一切都是那 ...

  4. 前端:JS/18/JS运算符(算术运算符,赋值运算符,字符串运算符,比较运算符,逻辑运算符,三元运算符),window.prompt()

    JS运算符 要进行各种各样的运算,就要使用不同的运算符号. 1,算术运算符:+ - * / % ++ -- + :加法运算符 - :减法运算符 * :乘法运算符 / :除法运算符 % :取余运算符,返 ...

  5. java/02/java运算符,java逻辑控制,java方法的定义及使用

    java/02/java运算符/java逻辑控制/java方法的定义及使用 运算符 如"="是赋值运算符,四则运算也是运算符. 在程序中运算的式子要简化,用简单的式子 以下运算符可 ...

  6. JavaScript学习笔记:JS运算符重载

    1.定义   在了解运算符重载之前,先了解一下重载.重载是指可使函数.运算符等处理不同类型数据或者接受不同个数参数的一种方法.   函数重载是指函数名相同,函数参数个数或者参数类型不同,以至于返回类型 ...

  7. 4.js运算符,js三目运算符

    js运算符 单目运算符:自增自减 自增 ++ 变量的值每次加1,再赋给变量; 自减 – 变量的值每次减1,再赋值给变量; 双目运算符: + 加 - 减 * 乘 / 除 % 求余 = 赋值 += 加等 ...

  8. 前端面试题 - JS 运算符优先级

    建议先看一下运算符分类,可以参考这篇文章:js运算符与优先级,基本上把所有的运算符以及分类都总结了出来. 借用文章的一个表格,该表格包含了所有的运算符,优先级自上而下逐渐降低,同一行优先级相同: 我们 ...

  9. js运算符单竖杠“|”的用法

    js运算符单竖杠"|"的作用 很多朋友都对双竖杠"||",了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用 ...

最新文章

  1. ACR2010_MRI骶髂关节炎症与CTX-II变化以及TNF拮抗剂治疗过程中全身炎症改变相关...
  2. 我的世界java路径_我的世界java路径在哪 路径有误怎么设置
  3. c语言编程暴力是什么意思,(C语言代码)用笨办法暴力出来的,但是还是希望给大家一点思路上的启发...
  4. 连续三年蝉联第一,Flink 荣膺全球最活跃的 Apache 开源项目
  5. php编写服务器端脚本程序,PHP脚本语言写的简单服务器程序
  6. springboot忽略证书_SpringBoot获取resource下证书失败
  7. UI标签库专题十:JEECG智能开发平台 Form(form标签)
  8. 未来云原生世界的“领头羊”:容器批量计算项目Volcano 1.0版本发布
  9. 9_python基础—数据序列(公共方法)
  10. javascript 容错处理代码【屏蔽js错误】
  11. pip install 出现报asciii码错误的解决
  12. python 宏定义_Flask干货:Jinja2模板中的宏定义和使用
  13. MFC最详细入门教程[转载]
  14. 用Java实现文本编辑器
  15. kettle 学习笔记
  16. Kafka结合Spark-streaming 的两种连接方式(AWL与直连)
  17. 数字证书及其简单数字签名的实现(java实现)
  18. 腾讯前端面试经验(一)
  19. ROS——Teb算法的优化
  20. 想要成为一个游戏美术设计师,需要学习什么?游戏建模教程

热门文章

  1. Kotlin Jetpack 实战: 图解协程原理 | 开发者说·DTalk
  2. Arcgis mxd文件的打包传输和转移
  3. [导入]“四大恶人”铁血股市
  4. 经典论文pix2pix详解
  5. 【SSM框架】超详细的使用eclipse工具搭建SSM框架,一看就会
  6. Ubuntu16.04 kdevelop
  7. 今天,对科比来讲有个大事件!
  8. shell编程5-函数与正则表达式
  9. 看了很多人问香港10周年晚会上的开幕动画中的小猪麦兜为什么总问橡皮,写个小故事....
  10. webbench 下载_linux 安装webbench