码农必备的代码运算

平常生活中的运算,例如九九乘法表啊,这些大家都会吧,那么对于码农来说运算的方式就得好好利用自己的所学了吧
那先给大家介绍一下咱们的各种运算符:
一、一元操作符
1.i++ 先赋值 后自加
i-- 先赋值 后自减
2.++i 先自加 后赋值
--i 先自减 后赋值
3.+i 正数
-i 负数
给大家举例说明

var a = 5;
var b = (a++)+(a--)-(--a)+(++a);
console.log(b);

得出结果b是12;
解答过程是这样的:b=5+6(因为符号在后的是先赋值,后自加(自减)所以a++是5,a的值就是6,然后a--赋值也就是6)-4(前边是a--得出a结果此时是5,然后符号在前的先运算,后赋值,所以直接得出4)+5(先运算那么就是4直接加1);

var a = 5;  
var a = +a;
console.log(a);
var a = -a;
console.log(a);

这个就是正数负数
给大家结果展示,看一下咱们算的对不对


1561647219(1).png

二.加性操作符
1.加法操作符+
2.减法操作符-、

var a = 7 + 3;
var a = 7 + '4';

看一下结果:
1561681938(1).png

两个数字相加可以得出结果, 如果运算中出现字符串类型,+ 将执行拼接的功能,转成字符串;所以第二个结果74就是字符串。

var a1 = 5 - true; // 4,因为 true 被转换成了 1
var a2 = NaN - 1; // NaN
var a3 = 5 - 3; // 2
var a4 = 5 - ""; // 5,因为"" 被转换成了 0
var a5 = 5 - "2"; // 3,因为"2"被转换成了 2
var a6 = 5 - null; // 5,因为 null 被转换成了 0

看一下结果:


1561682913(1).png

如果有一个操作数是字符串、布尔值、 null 或 undefined ,则先在后台调用 Number() 函数将其转换为数值,然后再根据前面的规则执行减法计算。如果转换的结果是 NaN ,则减法的结果就是 NaN ;
三、乘性操作符
乘性操作符遇到非数值型将执行 Number() 转型函数功能。(隐式类型转换)
* 乘法操作符
/ 除法操作符
% 取余操作符

var a = 3 * 7;
console.log(a);
var a = 9 / 3;
console.log(a);
var a = 5 % 12
console.log(a);

看一下结果:
1561682450(1).png

四、关系操作符
< 、 > 、 <= 和 >= 这几个关系操作符用于对两个值进行比较
这几个操作符都返回一个布尔值
比较的是字符的编码数字的大小,小写字母的数值 大于 大写字母的数值26个字母数值依次递增,如果首个字符相同,比较第二个,以此类推。

var a = "23" < "3"; 
var a = "23" < 3; 
var a = "a" < 3; 
var a = NaN < 3;
var a = NaN >= 3;

由于字符串不能转换成合理的数值,因此就被转换成了 NaN 。
根据规则,任何操作数与 NaN 进行关系比较,结果都是 false 。
那么结果是什么呢:


1561683332(1).png

五、相等操作符
相等和不相等——先转换再比较(仅仅比较转化后的值是否相等);
全等和不全等——仅比较而不转换(不仅比较值还比较类型)。
都返回布尔类型的值(true 或 false)
1.相等和不相等 ( == 和 != )
返回值为true的总结:
* null == undefined * 1 == true * 0 == false
* "" == 0 * "" == false * NaN != NaN
* true == "1" * false == "0" *
2.全等和不全等(===和!==)
除了在比较之前不转换操作数之外,全等和不全等操作符与相等和不相等操作符没有什么区别。
全等操作符只在两个操作数未经转换就相等的情况下返回 true ,
如下面的例子所示:

var result1 = ("55" == 55); //true,因为转换后相等
var result2 = ("55" === 55); //false,因为不同的数据类型不相等   

不全等操作符由一个叹号后跟两个等于号( !== )表示。它在两个操作数未经转换就不相等的情况下返回 true 。
例如:

    var result1 = ("55" != 55); //false,因为转换后相等
var result2 = ("55" !== 55); //true,因为不同的数据类型不相等

今日暂且到此,欲知后续请看下回讲解。

你可能感兴趣的:(码农必备的代码运算)