这是我参与「第四届青训营 」笔记创作活动的的第7天
1.JS运算符
运算符也成为操作符,对多个值或一个进行计算,并获得结果,比如typeof也就是运算符,可以获得一个值的类型。
算数运算符
字符串两相加,则为“拼串操作”。(注:任何值与字符串作加法,都会转换为字符串)
- "+"进行加法运算,将结果返回(任何与Nan的计算都是NaN)
- "-"进行减法运算
- "*"进行乘法运算
- "/"进行除法运算
- "%"进行取模运算(取余数)
任何值与字符串作加法,都会转换成字符串
<script>
var c=2;
console.log("c="+c);
// c=2
result = 1+2+"3";
console.log(result);
// 33
result = "1"+2+3;
console.log(result);
// 123
</script>
除了加法,其余都转换为Number数值型
<script>
result = 100-true;
// 99
result = 2*"8";
// 16
result=2*undefined;
// NaN
result=2*null;
// 0
</script>
取模运算
<script>
result = 9%4;
// 5
result = 9%3;
// 0
result= 9 % 2;
// 1
</script>
一元运算符
只需要一个操作数
"+" 正号,不对数字产生任何影响
"-" 负号,对数字进行负号的取反
对于非Number值会有先转换为Number,可对其他数据类型进行"+"号,进行类型转换
<script>
a="18";
a=+a;
// a——>Number
</script>
自增自减
自增
通过自增可以使变量在自身基础上加1
<script>
var a = 1;
a++;
// 每调用一次+1
console.log("a="+a);
// a = 2
</script>
- a++ 后++
- ++a 前++
无论是a++,还是++a,都立刻使原变量自增1
但是a++,等于原变量的值(自增前的值), ++a,等于自增后的值
自减
通过自减可以使变量在自身基础上减1
- a-- 后--
- --a 前-- 自减与自增同理
逻辑运算符
- !非
- &&与
- ||或
!非运算
!可以用来对一个值进行非运算,对布尔值进行取反操作
<script>
var a = true;
a =!a;
console.log("a="+a);
// a为false
a = !!a;
// 两次取反,结果不会变
</script>
&&与运算
规则:
都是true才会true
<script>
var result = true && true;
// 为true
result = true && false;
// 为false
result = false && false;
// 为 false
result = false && true;
// 为false
</script>
JS中的与属于“短路”,若第一个值为false,则不会检查第二个值(找false,有一个则返回false)
||或运算
与“与”相反
<script>
var result = false || false;
// 为false
result = true || false;
// 为true
result = false || true;
// 为true
result = true || true;
// 为true
</script>
只要有一个true,则不会检查第二个值
&&与||非布尔值
var result = 1 && 2 ;
会将其转换为布尔值,再运算,并返回原值
- 5&&6 ——>6
- 0&&2 ——>0
- 2&&0 ——>0
- NaN&&0 ——>NaN
- 0&&NaN ——>NaN
短路与靠前的False,都是true返回后true;第一个是true,必返回第二个,第一个是false,返回第一个
result = 1 || 2;
// 如果第一个是true,则返回第一个
// 如果第一个是false,则直接返回第二个