运算符也被称为操作符,用于实现赋值、比较和执行算数运算等功能的符号
常用的运算符:
算数运算符、递增和递减运算符、比较运算符、逻辑运算符、赋值运算符
1、算术运算符+ -*/%
+ - * / %
(1)%取余可以用来判断一个数是否可以被整除(如果一个数取余是0它就是整数)
(2)浮点数的精度问题:
浮点数的最高精度式17位小数,但在进行算术计算时其精度远远不如正数
因此:最好不要直接判断两个浮点数是否相等
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
console.log(0.1+0.2);//0.30000000000000004
var res=0.1+0.2;
console.log(res==0.3);//false
</script>
</head>
<body>
</body>
</html>
2、表达式和返回值
表达式:由数字、运算符、变量等组成的公式,用来求取某种数值
返回值:表达式的最终结果返回给我们
3、前置递增运算符++a
先加1,再返回值
a是变量
var a=1;
var b=++a+1;//++a=2,a=2,b=3
4、后置递增运算符a++
先返回值,再加1
a是变量
var a=1;
var b=a+++1;//a++=1,a=2,b=2
练习:
var c=10;
var res=c++ + ++c;//10+(11+1)=22
console.log(res);
5、比较运算符
也叫关系运算符,是两个数据进行比较时所使用的运算符,比较运算之后,返回一个布尔值作为比较运算的结果
< > >= <=
== (判等号,会转数据类型,将字符串转为数值,值相等) 37=='37'
!=
===(全等号)要求值和数据类型都一致 37===37
!== 37!=='37'
6、逻辑运算符
用来进行布尔值运算的运算符,其返回值也是布尔值
逻辑与&&:两侧为真,结果为真
true&&true=true
true&&false=false
逻辑或||:两侧为假,结果为假
true || true=true
true||false=true
false||false=false
逻辑非!
!true=false
!false=true
逻辑中断-短路运算
原理:当有多个表达式(值)时,左边的表达值可以确定结果时,就不再继续运算右边的表达式的值
短路与
语法:表达式1&&表达式2
如果表达式1值为真,则返回表达式2
如果表达式1值为假,则返回表达式1
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 短路与 123为真,就返回456+1;NaN为false,结果0
console.log(123&&456+1);
console.log(NaN&&456+456*789);
</script>
</head>
<body>
</body>
</html>
短路或
语法:表达式1||表达式2
如果表达式1结果为真,则返回表达式1
如果表达式结果为假,则返回表达式2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 短路或 123为真,就返回123,num++不执行;NaN为false,结果456
var num=0
console.log(123||num++);
console.log(num);
console.log(NaN||456);
</script>
</head>
<body>
</body>
</html>
7、赋值运算符
用来把右边数据赋值给左边变量的运算符
= +=、-=、*=、/=、%=
eg:
num+=2:意思是num=num+2
8、运算符比较优先级
-
逻辑与>逻辑或
-
一元运算符里逻辑非优先级很高