if判断和switch case 和三元运算符整理
if判断和switch case 和三元运算符整理
例子1:if判断写法:
<script type="text/javascript"> var num = 12; if(num>0){ if (num<10) { num++; }else{ num--; } }else{ if(num==0){ num++; num=num/10; } } console.log(num)//11 </script>
上面写成三元运算符:
<script type="text/javascript"> var num = 12; num>0?num<10?num++:num--:num=0?(num++,num=num/10):""; console.log(num)//11 </script>
例子2:if判断写法:
<script type="text/javascript"> var num = 12; if (num == 10) { num++; }else if (num == 5) { num --; }else{ num=0; } </script>
上面写成switch case:
<script type="text/javascript"> var num = 10; switch (num) { case 10: num++; break; case 5: num--; break; default: num = 0; } console.log(num) //11 </script>
注意:上面例子中当var num = '10';时,打印num输出的是0;
switch case中每一种case情况的比较都是基于"==="绝对相等来完成的
<script type="text/javascript"> var num = '10'; switch (num) { case 10: num++; break; case 5: num--; break; default: num = 0; } console.log(num) //0 </script>
var num = '10';//字符串
num++;//11,数学运算
num=num+1;//101,字符串拼接
num++就不等于num=num+1
"10"==10;
=>true 相等比较,如果等号左右两边的类型不一样,首先会转换为一样的数据类型,然后再进行比较
=>当前案例中,就是把字符串‘10’转换为数字了,然后再比较的
‘10’ === 10
=>fasle 绝对比较,如果两边的数据类型不一样,则直接不相等,它要求类型和值都完全一样才会相等(真是项目中为了保证代码的严谨性,我们应该更多使用绝对比较)
使用 && 实现 if 判断
vue例子:
const list = localStorage.getItem('my-list') list && (this.list = JSON.parse(list))
等价于:
const list = localStorage.getItem('my-list') if(list){ this.list = JSON.parse(list) }