JavaScript|运算符

一. 运算符的分类

运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号, 常用的有:

  • 算数运算符
  • 自增自减运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符

1 表达式和返回值

表达式:是由数字、运算符、变量等以能求得数值的有意义排列方法所得的组合

简单理解:是由数字、运算符、变量等组成的式子

表达式最终都会有一个结果,返回给开发者,称为返回值

示例

1 + 1 // 是一个表达式, 返回值是2

var a = 100
a + 100 // 返回值是200

1 == '1' // 返回值是true

二. 算数运算符

算数运算符就是数学运算中的加减乘除

运算符 描述 实例
+ 20 + 10 = 30
- 20 - 10 = 10
* 20 * 10 = 200
/ 20 / 10 = 2
% 取模 返回余数18 % 2 = 0 ; 15 % 2 = 1

小数会存在精度丢失的问题

0.1 + 0.2 ===== 0.30000000000000004
img

因此, 不要直接拿小数进行比较!!!

三. 自增自减运算符

自增自减都是对数字变量的操作

示例

var num = 1
num++
++num

下面这种是错误的

1++

1 前置自增

++num: 先+1, 再返回结果

var num = 10
++num // 表达式返回11, 执行完后num的值是11

2 后置自增

num++: 先返回结果, 再+1

var num = 10
num++ // 表达式返回10, 执行完后num的值是11

练习

var a = 10;
++a; //11
var b = ++a + 2; // 14
console.log(b);

var c = 10;
c++; //11
var d = c++ + 2; //13
console.log(d);

var e = 10;
var f = e++ + ++e; // 10 + 12
console.log(f); // 22

四. 比较运算符

比较运算符是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true / false)作为比较运算的结果

运算符 说明 案例 返回值
< 小于 1 < 2 true
> 大于 1 > 2 false
<= 小于等于 1 <= 2 true
>= 大于等于 1 >= 2 false
== 等于(会隐式转换) '1' == true true
!=(!==) 不等于 NaN != NaN true
=== 全等, 判断类型和值 '1' === true false

字符的比较

字符的比较是按照ASCII码表依次比较的

img

示例

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 字符的比较是字符比较
      console.log('100' < '99') // true

      console.log(100 < 99) // false

      console.log('A' < 'a') //true
      console.log('aB' < 'aA') // false
      console.log('aB' < 'a') // false a相等, 比较第二个字符 B 和 空
    </script>
  </body>
</html>

五. 逻辑运算符

逻辑运算符是用来进行布尔值运算的运算符

后面开发中经常用于多个条件判断

运算符 说明 案例 返回值
&& 逻辑与 and 2>1 && 3 >2 true
|| 逻辑或 or 2>1 || 3>2 true
! 逻辑非 not !true false

1 逻辑与

全真为真, 一假为假

案例 返回值
true && true true
false && true false
true && false false
false && false false

2 逻辑或

全假为假, 一真为真

案例 返回值
true || true true
false || true true
true || false true
false || false false

3 逻辑非

真假互换

案例 返回值
!true false
!false true

4 短路运算

当有多个表达式(值)做逻辑运算时

第一个表达式值可以确定结果时,就不再继续运算后边的表达式的值

  • 逻辑与
    语法: 表达式1 && 表达式2
如果第一个表达式的值为真,则返回表达式2
如果第一个表达式的值为假,则返回表达式1
  • 逻辑或
    语法: 表达式1 || 表达式2
如果第一个表达式的值为真,则返回表达式1
如果第一个表达式的值为假,则返回表达式2

示例

var num = 0;
console.log(123 || num++);
console.log(num);

练习

判断是否为润年, 满足以下两个条件之一就是润年

  • 能被4整除且不能整除100
  • 能够被 400 整除
var year = 2000
var res = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)

六. 赋值运算符

把数据赋值给变量的运算符

运算符 说明 案例
= 赋值 var a = 100
+=, -= 加, 减一个数后再赋值 var age = 10; age += 5 // age = age + 5
*=, /= ,%= 乘, 除, 取模后再赋值 var a = 5; age *= 2

七. 运算符的优先级

优先级 运算符 顺序
1 小括号 ()
2 一元运算符 ++ -- !
3 算数运算符 先 * / % 后 + -
4 关系运算符 >``>=``<``<=
5 逻辑运算符 先 && 后 ||
6 赋值运算符 =

八. 三元运算符

1 语法

条件表达式 ? 表达式1 : 表达式2

返回值

  • 条件为真, 返回表达式1的结果
  • 条件为假, 返回表达式2的结果

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>
  </head>
  <body>
    <script>
      let age = prompt('请输入年龄')
      const res = age > 18 ? '成年' : '未成年'
      alert(res)
    </script>
  </body>
</html>
posted @ 2023-07-10 15:42  Weltㅤ  阅读(27)  评论(0编辑  收藏  举报