js-算数运算


title: “Js 算数运算.”
date: 2022-08-17T19:05:44+08:00

数学运算符:

运算符描述
+加法
-减法
*乘法
**次冥(ES2016新加)
/除法
%取余
++自增
自减

number数据类型的基本运算

按照数学中的算数方法正常运算,这了就不再叙述

自增或自减运算符的正确使用

  1. 如果自增或者自减表达式是独立执行,++(–)在前后的值都是一样的

    var a = 2;
    a ++;//结果为3
    ++ a;//结果为4
    
  2. 如果自增和自减运算和其他变量在一起的话,++的顺序是有影响的

    • 如果++写到变量名的前面,变量先加1然后将结果带入到算式中去参与运算,且其结果会影响到该变量在后面的值,如:

      var a = 1, b;
      b = ++a + 1 + a;//该式的结果为5 = 2 + 1 + 2
      
    • 如果++写到变量名的后面,先赋值给表达式整体,该项过后再+1,如:

      var m = 2, n;
      n = m++ + 2 + ++m;//该式结果为8 = 2 + 2 + 4
      

自增练习:

var a = 1;
var b = a + ++a + 1 + a + ++a;
console.log(a); //3
console.log(b); //9

var a = 5;
var b = a-- + 1 + a--;
console.log(a);//3
console.log(b);//10

var a = 4;
var b = a++ + a++ + a + 1 + a-- + 1;
console.log(a);//5
console.log(b);//23

var k = 1;
var s = k++ + k + 2 + ++k;
console.log(k);//3
console.log(s);//8

var a = 2;	
var b = ++a + a++ + a++ + a + ++a + a++ + a;//b = 3 + 3 + 4 + 5 + 6 + 6 + 7 = 34
console.log(a); //7
console.log(b); //34

其他数据类型的运算

字符串之间的运算

var a = "嘿嘿";
var b = "啦啦";
console.log(a+b); // 嘿嘿啦啦 //两个字符被拼接在一起
console.log(a-b); //NaN (Not a Number)
console.log(a*b); //NaN
console.log(a/b); //NaN
console.log(a%b); //NaN

正常的number类型的数据运算时,运算符+两边的数字(指的就是操作数)相加即可,但是当涉及到字符串时,如果运算符+两边的操作数有一个为字符串,且另一个不为空时,此时运算符+起到拼接作用,即把两个操作数拼接在一起,但是当出现下面这种情况时,可把字符串隐视转换为number类型的值:

var a = 2, str = '23', b;
b = a +  + str//结果为25

但是,当上面的str不为纯数字的字符串时,结果为NaN

除此之外,运算符-*/%==也可以将纯数字的字符串隐视转换为number类型:

console.log('嘿嘿' + 5 * '6');//结果为  嘿嘿30
var str1 = '22';
var str2 = '22';
var str_1 = str1 - str2;
console.log(str_1); // 0
var str_2 = str1 * str2;
console.log(str_2); // 484
var str_3 = str1 / str2;
console.log(str_3);// 1
var str_4 = str1 % str2;
console.log(str_4);// 0
// 运算符 + 其实也可以对纯数字字符串进行隐式转换:
var str_5;
str_5 = 5 +  + "22";
console.log(str_5);//27
str_5 = "22" +  + 2;
console.log(str_5);//222  结果表明只有特殊情况(即+操作符前面是空的时候,且操作符+后面跟纯数字字符串时可以把字符串转换为数字类型)

自增和自减运算符不能转换其类型且会报错。

布尔值之间的运算

true会被当作1计算; false当作0 计算。

var c = true; //1
var d = false;//0
console.log(c+d); //1 1+0
console.log(c-d); //1 1-0
console.log(c*d); //0 1*0
console.log(c/d); //Infinity(无穷)  1/0
console.log(c%d); //NaN 1%0

undefined之间的运算

undefined之间的运算结果都为NaN,和其他数据类型(除了拼接)之外的计算结果都是nan

var e = undefined;
var f = undefined;
console.log(e+f); // NaN
console.log(e-f); // NaN
console.log(e*f); // NaN
console.log(e/f); // NaN
console.log(e%f); // NaN

null之间的运算

null之间的运算,null会被当做0计算

var g = null;
var i = null;
console.log(g+i); //0
console.log(g-i); //0
console.log(g*i); //0
console.log(g/i); //NaN 0/0
console.log(g%i); //NaN

数据类型混合运算

console.log("嘿嘿"+6);
console.log(6+6);//12
console.log("6"+6);//66
console.log(6+6+"55");//1255
console.log(true+4); //5
console.log("true"+11);//true11
console.log(undefined+true); // NaN
console.log(null+undefined);// NaN
console.log(6+undefined); // NaN
console.log("undefined"+"undefined");//undefinedundefined
console.log("undefined"+1); //undefined1
console.log(undefined+"1"); //undefined1
console.log("哈哈"+undefined); //哈哈undefined
console.log(null+true); //1
console.log(null+"嘿嘿");//null嘿嘿
console.log("null"+1);//null1
console.log(undefined+"1")//undefined1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值