算术运算符
+ - * / %
+操作符的作用有:
- 字符串相连
- 数字相加 ```javascript
- 字符串 + 其他 = 字符串 会把其他类型 转换为 字符串 , 两个字符串连接到一起
数字 + 数字 = 数字 会把其他类型 转换为 数字 ,再相加 3.如果在数字字符串前面写一个+,可以隐式转换成数字类型 var arr = 100; var arr2= ‘200’; console.log( + arr2 + 20 );
**-**操作符的作用就是数字相减
```javascript
都是优先把非数字的转换为数字,再运算
var res3 = '456' - 123;
console.log(res3); // 输出 数字 333
var res4 = 'abc' - 123;
console.log(res4); // 输出NaN
这是因为,数字和字符串在相减的过程中,会把字符串隐式转换成数字,再相减
但是如果字符串在转换的过程中,无法转换成数字
就会转换成NaN,再计算就无法得到一个正确的数字结果
*
操作符的作用是两个数字相乘/
操作符的作用是两个数字相除%
操作符的作用是两个数字求模(得到余数)%
作用: 得到两个数字相除的余数
无法整除的部分就是余数
看看一个数字是否整除另一个数字
隐式转换
隐式转换是指在数据在参与运算的过程中,数据根据操作符的运算规则自动进行的数据类型转换。
比较运算符
```javascript
< >= <= 以上都是和数学里面的比较是一样的规则 =
单个=号是赋值符号
判断两个值是否相等 console.log(5 % 2 == 0);
!= 判断两个值不相等 console.log(5 % 2 != 0);
=== 判断类型和值是否相等 console.log(undefined === null); !== 判断类型和值是否不相等
<a name="articleContentId"></a>
# JavaScript中NAN到底是什么?NAN==NAN?
NAN是属于**JavaScript的数值类型Number类型**。NaN意思是指数据not a number不是一个数字,但是NAN却**属于数值类型。**<br />_那么NaN在什么情况下会出现呢?_<br />一般来说都是本来要输出一个数值,但是在输出的数值类型出现错误时,系统难以识别。但是系统没有报错,而是返回了NaN。例如下面这种情况,b是数值类型,a是字符串,所以参与运算后c值输出结果就是NaN,也就是Number类型。0/0也会出现NaN。<br />![image.png](https://cdn.nlark.com/yuque/0/2020/png/2870245/1608801811852-89e9c4f8-f38a-44e0-9ce9-0279e304fcc8.png#align=left&display=inline&height=106&margin=%5Bobject%20Object%5D&name=image.png&originHeight=106&originWidth=791&size=15725&status=done&style=none&width=791)<br />需要注意的是,**NAN 不会和任何一个值相等**,包括NAN本身。运行结果都为false。<br />![image.png](https://cdn.nlark.com/yuque/0/2020/png/2870245/1608801835338-cad069f7-693a-491a-82e4-4fa677ab933e.png#align=left&display=inline&height=94&margin=%5Bobject%20Object%5D&name=image.png&originHeight=94&originWidth=845&size=29280&status=done&style=none&width=845)<br />但是其他的数据类型相比较的结果都为true。<br />![image.png](https://cdn.nlark.com/yuque/0/2020/png/2870245/1608801847659-4f0820a5-0a57-452a-bfee-3e2e6095c561.png#align=left&display=inline&height=92&margin=%5Bobject%20Object%5D&name=image.png&originHeight=92&originWidth=780&size=31990&status=done&style=none&width=780)<br />那么如何判断一个值是否是NaN呢?我们可以使用isNaN()函数来判断数字是否非法。返回值是Boolean类型。如果参数是NaN,返回true否则false。但是isNaN()和我们最开始的理解是有一点偏差的,isNaN()输出其实是根据参数**是否能被Number()合法转化为数字**。例如字符串或者布尔值。<br />![image.png](https://cdn.nlark.com/yuque/0/2020/png/2870245/1608801863139-696c2d30-818b-4cef-bab8-ffd45d7a7934.png#align=left&display=inline&height=120&margin=%5Bobject%20Object%5D&name=image.png&originHeight=120&originWidth=808&size=64014&status=done&style=none&width=808)<br />Number()可以合法的将包含数字的字符串转化为数字类型,所以被isNaN判定为false。
<a name="U0nNh"></a>
## 用弹窗框制作一个计算工资绩效、
1. 先声明一个变量,先存储着基本工资
1. 通过prompt弹出的输入框,获取老板输入的绩效工资<br />
1. 计算 总工资 = 基本 + 绩效<br />
1. 使用alert() 弹出总工资<br />
```javascript
需要把输入框的内容转换成小数,才可以数值准确运算
var userSalary =parseFloat(prompt('请输入您的绩效工资'))
var basicPay = 3000;
var bonus = basicPay+userSalary;
alert('您的工资是'+bonus);
浏览器里面调试代码
按F12打开浏览器控制台
第一步: 打开sources选项卡
左边可能会有文件,也可能没有,需要自己把文件点出来
在需要断点的地方打断点(哪里有问题就在哪里打断点)
刷新就会停在断点的行上面
然后就观察,每个变量的当前的值是多少