一.运算符
1.运算符(operator):也叫做操作符,用于实现赋值,比较和执行算数运算等功能的符号
2.js常用运算符:算数运算符,递增递减运算符,比较运算符,逻辑运算符,赋值运算符
二.算术运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 | 10+20=30 |
| - | 减 | 10-20=-10 |
| * | 乘 | 10*20=200 |
| / | 除 | 10/20=0.5 |
| % | 取余数(取模) | 返回除法的余数9%2=1 |
2.1 浮点数(小数)的精度问题
1.浮点数值最高精度是17位小数,但在进行算数计算时其精确度远远不如整数
注意
1.不要直接判断两个浮点数是否相等!!!
2.1 + 2 * 3的结果是7:注意算数运算符优先级的,先乘除,后加减,有小括号先算小括号里面的
2.2表达式和返回值
表达式:是由数字,运算符,等量等以能求得数值的有意义排列方法所的组合
简单了解:由数字,运算符,变量等组成的式子(表达式)
表达式特点:表达式最终都有一个结果,返回给我们,我们成为返回值
console.log(1 + 1) ; // 2就是返回值
// 1 + 1 =2
// 我们程序里面 2 = 1 + 1 把我们右边表达式计算完毕后把返回值给左边
var num = 1 + 1; // num=2
三.递增和递减运算符
3.1 递增和递减运算符概述
1.若需要反复给数字变量加或减1,可以使用递增 (++)和递减(--)运算符来完成
2.递增 (++)和递减(--)可以放在变量前面或后面。前面:成为前置递增(递减)运算符;后面:后置递增(递减)运算符
注意
递增和递减运算符必须和变量配合使用
3.2 递增运算符
1.前置递增运算符
++num 前置递增,++相当于1,类似与num=num+1,但是++num写起来更方便
使用口诀:先加加,后返回值
2.后置递增运算符
num++后置递增 ,++相当于1,类似与num=num+1,但是++num写起来更方便
使用口诀:先返回原值,后自加
3.前置和后置区别
二者若单独使用,效果一样
与其他代码联用时,执行结果会不同
后置:先原值运算,后自加(先人后己)
前置:先自加,后运算(先己后人)
开发时,大多使用后置递增,并且代码单独占一行,例如:num++;或者num--;
3.3比较运算符
1.概念:两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true/false)作为比较运算的结果
| 运算符名称 | 说明 | 案例 | 结果 |
|---|---|---|---|
| < | 小于号 | 1<2 | true |
| 大于号 | 1>2 | false | |
| >= | 大于等于号(大于或者等于) | 2>=2 | true |
| <= | 小于等于号(小于或者等于) | 3<=2 | false |
| == | 判等号 | 37==37 | true |
| != | 不等号 | 37 !=37 | false |
| === !== | 全等 要求值和数据类型都一致 | 37==='37' | false |
注意
1.等于符号== 默认转换数据类型,会把字符串型的数据转换为数字型,只要求值相等就行
console.log(18 == '18') // true
2.全等符号=== 要求两侧的值和数据类型完全一致才可以
console.log(18 === '18') // false
2."="的总结
| 符号 | 作用 | 用法 |
|---|---|---|
| = | 赋值 | 把右边给左边 |
| == | 判断 | 判断两边的值是否相等(注意此时有隐式转换) |
| === | 全等 | 判断两边的值和数据类型是否完全相等 |
3.4 逻辑运算符(用于多个条件的判断)
一.概念:用来进行布尔值运算的运算符,其返回值也是布尔值,后面开发中经常用于多个条件的判断
二.
| 逻辑运算符 | 说明 | 案例 |
|---|---|---|
| && | “逻辑与” 简称”与“ and | true&&false |
| || | “逻辑或” 简称”与“ or | true || false |
| ! | “逻辑与” 简称”非“ not | ! true |
注意
1.逻辑与 &&:两侧都为true , 结果都为true;只要有一侧为false,结果就为false
2.逻辑或 || :两侧只要有一个为 true 结果就为真,两侧都为假结果才是假
3.逻辑非 !(也叫取反符):!false为true,!true 为false
3.5 赋值运算符
一.概念:用来把数据赋值给变量的运算符
二.
| 赋值运算符 | 说明 | 案例 |
|---|---|---|
| = | 直接赋值 | var usrName = '我最值' |
| +=、-= | 加、减一个数后再赋值 | var age = 10;age+=5;//15 |
| *=、/=、&= | 乘、除、取模后再赋值 | var age = 2; age*=5; //10 |
例如:
var age = 10;
age += 5; // 相当于 age = age +5;
age -=5; // 相当于 age = age-5;
age *=5; // 相当于 age = age *5;
运算优先级
| 优先级 | 运算符 | 顺序 | ||
|---|---|---|---|---|
| 1 | 小括号 | () | ||
| 2 | 一元运算符 | ++ -- ! | ||
| 3 | 算数运算符 | 先 * / % 后 + - | ||
| 4 | 关系运算符 | > >= < <= | ||
| 5 | 相等运算符 | == != === !== | ||
| 6 | 逻辑运算符 | 先&&(逻辑与) 后 | (逻辑或) | |
| 7 | 赋值运算符 | = | ||
| 8 | 逗号运算符 | , |
注意
1.一元运算符里面的逻辑非优先级很高
2.逻辑与比逻辑或优先级高