美文网首页
算术运算符

算术运算符

作者: 聊却余生skr | 来源:发表于2018-09-14 11:16 被阅读0次

    一.+(加法),-(减法),*(乘法),/(除法),%(取模/取余):

    let a=10,
         b=20;
    alert(a+b);//输出的结果是30
    let x=0.1,
         y=0.2;
    alert(a+b);//输出的结果是3000000004;因为他们是以二进制的形式进行计算的,所以会出现这种结果,要想严格的话,可以给他们变成整数进行相加,然后在除以相应的倍数就行了
    

    减法和乘除也是一样的,这里就不一一演示了

    %(取模)这里并不是百分比的意思,是取余的意思

    alert(10%3)//这里弹出的结果是1
    alert(10.5%3)//这里的结果是1.5,如果有小数的话,小数是不参与计算的。
    

    二.隐式类型转换

    1.加法的隐式转换

    let a="10",
         b=20;
    alert(a+b)//这里的结果是1020的字符串,在运算的时候被同化了
    alert("123"+true)//得出的结果是"123true"
    alert(true+8);//结果是9
    alert([]+[])//结果是啥都没有,没有意义的
    alert(1+2+"8");//结果是38,这里也是根据算数运算的规律来运算的。
    alert("8"+1+2);//结果是812,这是812字符串
    
    得出的结论就是:1.如果两个数相加,加号两边任意一遍有字符串,那么都会进行隐式的转换在进行拼接。2.布尔值和数字进行相加,会转换成1 0

    2.减法的隐式转换

    let a=30,
         b=20;
    alert(a-b);//结果是10;
    alert("50p"-10);//结果是Nan
    
    得出的结论是两个数相减,减号两边任意一边有数字,那么都会进行隐式转换成数字在相减,乘法和除法还有模也是相同的。如果出现不合理的运算的时候会出现Nan(不是一个数字)。Nan是数据类型是Number。

    三.自增自减

    let a=10;
         a++;
    alert(a);//结果是11
    let b=a++;//运算过程是:b=a;a=a+1;
    let b=++a;//运算过程是:a=a+1;b=a;
         ++a;
    alert(a);//结果也是11
    
    得出的结论就是虽然结果一样,但是过程不一样。a++是表达式的值,++a是自曾1之后的值。
    let a=10;
    let b=5;
    alert(a+b);//结果是15;
    alert(a++b);//结果是出错,电脑的解析过程是(a++)b;这样就不合理了。
    alert(a+++b);//结果是15,电脑的解析过程是(a++)+b,也就是10+5。
    alert(a++++b);//结果是出错,电脑的解析过程是(a++)(++b);这样也不合理。
    alert(a+++(+b));//结果是15,电脑的解析过程是(a++)+(+b);也就是10+5。
    alert(a+++++b);//结果是16,电脑的解析过程是(a++)+(++b);也就是10+6。
    
    注意:自减的运算方式和自增是一样的。
    let a="5";
    a++;
    alert(a);//结果是6;
    
    得出的结论是++或--会强行变成数字进行运算,最终的结果也是数字。

    相关文章

      网友评论

          本文标题:算术运算符

          本文链接:https://www.haomeiwen.com/subject/udvngftx.html