算术运算符

+ - * / %
+操作符的作用有:

  1. 字符串相连
  2. 数字相加 ```javascript
  3. 字符串 + 其他 = 字符串 会把其他类型 转换为 字符串 , 两个字符串连接到一起
  4. 数字 + 数字 = 数字 会把其他类型 转换为 数字 ,再相加 3.如果在数字字符串前面写一个+,可以隐式转换成数字类型 var arr = 100; var arr2= ‘200’; console.log( + arr2 + 20 );

    1. **-**操作符的作用就是数字相减
    2. ```javascript
    3. 都是优先把非数字的转换为数字,再运算
    4. var res3 = '456' - 123;
    5. console.log(res3); // 输出 数字 333
    6. var res4 = 'abc' - 123;
    7. console.log(res4); // 输出NaN
    8. 这是因为,数字和字符串在相减的过程中,会把字符串隐式转换成数字,再相减
    9. 但是如果字符串在转换的过程中,无法转换成数字
    10. 就会转换成NaN,再计算就无法得到一个正确的数字结果

    *操作符的作用是两个数字相乘
    /操作符的作用是两个数字相除
    %操作符的作用是两个数字求模(得到余数)

    1. %
    2. 作用: 得到两个数字相除的余数
    3. 无法整除的部分就是余数
    4. 看看一个数字是否整除另一个数字

    隐式转换

    隐式转换是指在数据在参与运算的过程中,数据根据操作符的运算规则自动进行的数据类型转换。

    比较运算符

    ```javascript

    < >= <= 以上都是和数学里面的比较是一样的规则 =

    单个=号是赋值符号

    判断两个值是否相等 console.log(5 % 2 == 0);

!= 判断两个值不相等 console.log(5 % 2 != 0);

=== 判断类型和值是否相等 console.log(undefined === null); !== 判断类型和值是否不相等

  1. <a name="articleContentId"></a>
  2. # JavaScript中NAN到底是什么?NAN==NAN?
  3. 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。
  4. <a name="U0nNh"></a>
  5. ## 用弹窗框制作一个计算工资绩效、
  6. 1. 先声明一个变量,先存储着基本工资
  7. 1. 通过prompt弹出的输入框,获取老板输入的绩效工资<br />
  8. 1. 计算 总工资 = 基本 + 绩效<br />
  9. 1. 使用alert() 弹出总工资<br />
  10. ```javascript
  11. 需要把输入框的内容转换成小数,才可以数值准确运算
  12. var userSalary =parseFloat(prompt('请输入您的绩效工资'))
  13. var basicPay = 3000;
  14. var bonus = basicPay+userSalary;
  15. alert('您的工资是'+bonus);

浏览器里面调试代码

按F12打开浏览器控制台
第一步: 打开sources选项卡
image.png
左边可能会有文件,也可能没有,需要自己把文件点出来
image.png
在需要断点的地方打断点(哪里有问题就在哪里打断点)
image.png
刷新就会停在断点的行上面
image.png
然后就观察,每个变量的当前的值是多少
image.png