运算符(逻辑、赋值)
一、 JavaScript运算符(运算符也叫做操作符,通过运算符我们可以对一个或则多个值进行运算,并获取运算结果。)
①逻辑运算符,JS中为我们提供了三种逻辑运算符:
! 非,取反。(对运算符后的运算结果进行取反操作。)
- ! 可以用来对一个值进行非运算,所谓非运算就是对一个布尔值进行取反操作,使得:false变为true ,true变为false。
(如:var a=false; console.log(“a=”+a);//输出结果为false, 若输出结果为true。
var b=! a; console.log(“b=”+b);//输出结果为true, 则输出结果为false。 )
- 如果对一个值(布尔值类型的数据)进行2次非运算,它的值不改变。
(如:var a=false; console.log(“a=”+a);//输出结果为false, 若输出结果为true。
var b=!!a; console.log(“b=”+b); //输出结果为false, 则输出结果为true。 )
- 如果要对非布尔值类型的数据进行非运算,则先将它转换为布尔值,再取反操作:
(1)数字转换为布尔值,数字除了0是false,其余的数字全部都是true;
(2)字符串转化为布尔值,除了空字符串是false,其余的全部都是true;
(3)null 和undefined都会转换为false;
(4)对象也会转换为true。
(如:var str= " sdf" ; str =! str ; //str先转化为布尔值为—>true 在进行取反操作 —>!true—>结果为false。
console.log(“str=”+str); // 最终输出结果为false。
var str= " " ; str =! str ; //str先转化为布尔值为—>false在进行取反操作 —>!false—>结果为true。
console.log(“str=”+str); // 最终输出结果为true。)
- 如果利用这一特点,可以先将一个值转换为布尔类型,然后,再进行两次非运算。
(如:var str= " sdf " ; str =!! str ; //第一次非运算的结果为false,再对false进行一次非运算:! False; 结果为true。
console.log(“str=”+str); // 最终输出结果为true。)
&& 与,并且。(运算符两边的运输条件要同时满足,才会执行逻辑判断下的代码。)
- &&可以对符号两则的值进行与运算并返回结果,运算规则:
(1)两个值中只要有一个值是等于false,则返回false。
(如:var bl=false&&false; console.log(“bl=”+bl); // 结果为false。
var bl=true&&false; console.log(“bl=”+bl); // 结果为false。 )
(2)两个值都是等于true的情况下,则返回true。
(如:var bl=true&& true; console.log(“bl=”+bl); // 结果为true。)
- JS中的"与,并且",只要第一个为false,则返回false。
(只要第一个为false,就不会运算下去,则直接返回false,相当于短路运算。
如:var bl=false&& true; console.log(“bl=”+bl); // 结果为false。)
|| 或,或者。(运算符两边的运输条件只要有一个满足,才会执行逻辑判断下的代码。)
- || 可以对符号两则的值进行或运算并返回结果,运算规则:
(1)两个值只要有一个true,则返回true。
(如:var bl=true&&true; console.log(“bl=”+bl); // 结果为true。
var bl=true&&false; console.log(“bl=”+bl); // 结果为true。)
(2)两个值都是false的情况下,返回false
(如:var bl=false&& false; console.log(“bl=”+bl); // 结果为false。)
- JS中的"或",只要第一个为true,则返回true。不会再去检查第二个值。
(只要第一个为true,就不会运算下去,则直接返回true,相当于短路运算。
如:var bl=true&& false; console.log(“bl=”+bl); // 结果为true。)
②赋值运算符
JavaScript赋值运算
= :赋值 (可以将符号右侧的值赋值给左侧的变量)
+= :加等,左边的字符 等于 它本身 加上 右边的值。(作用与文本时,也可称为‘拼接符’)
如:num+=2 =>等价于 num=num+2;
(如:var num= 20 ; //num=20,将20赋值给num。
num+=10; //num=num+10 =>20+10=>30。
console.log(num); // 结果为30 。)
-= : 减等,左边的字符 等于 它本身 减去 右边的值。
如:num-=2 =>等价于 num=num-2;
(如:var num= 20 ; //num=20,将20赋值给num。
num-=10; //num=num-10 =>20-10=>10。
console.log(num); // 结果为10 。)
*= :乘等,左边的字符 等于 它本身 乘于 右边的值。
如:num*=2 =>等价于 num=num*2;
(如:var num= 20 ; //num=20,将20赋值给num。
num*=3; //num=num*2 =>20 X 3 =>60。
console.log(num); // 结果为60 。)
/= :除等,左边的字符 等于 它本身 除于 右边的值。
如:num/=2 =>等价于 num=num/2;
(如:var num= 20 ; //num=20,将20赋值给num。
num/=2; //num=num/2 =>20 / 2 =>10。
console.log(num); // 结果为10 。)
%= :取模等于,左边的字符 等于 它本身 除于 右边的值后的 余数。
如:num%=2 =>等价于 num=num%2;
(如:var num=12 ; //num=12,将12赋值给num。
num%=5; //num=num%5 =>12%5=>2......2 取/求余数。
console.log(num); // 结果为2,12除以5余数为2。 )