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)
}

 

 

posted @ 2019-02-20 14:47  前端HL  阅读(1045)  评论(0编辑  收藏  举报