利用||和&&赋值小技巧

对于需要返回boolean类型数值的地方,比如if判断,逻辑运算符,js对象会默认转换为boolean类型数据。null,undefined,0,”“返回false,其他返回true。

同时,对于||与&&又有这样的特性:

var a = b || c;

b默认值    c默认值    a取值
true    true    b
true    false    b
false    true    c
false    false    c
var a = b && c;

b默认值    c默认值    a取值
true    true    c
true    false    c
false    true    b
false    false    b
根据这两个特性,可以利用||与&&进行赋值。在某些情况下,可以简化代码,甚至是增加可读性。

下面给出的几组代码内的b与c的赋值是等效的。

    var b;

    if(b != null){
        b = b;
    }else {
        b = 2;
    }

    var c = c || 2; 
1
2
3
4
5
6
7
8
9
    var b;

    if(b){
        b = 1;
    }else {
        b = 2;
    }

    var c = (c && 1) || 2;
1
2
3
4
5
6
7
8
9
    var b;

    if(b){
        if(1 == 1){
            b = 1;
        }else {
            b = 2;
        }
    }else {
        b = 3;
    }

    var c = (c && ((1 == 1 && 1) || 2)) || 3;
1
2
3
4
5
6
7
8
9
10
11
12
13
    var b;

    if(2 > 1){
        b = 1;
    }else if(3 > 1){
        b = 2;
    }else {
        b = 3;
    }

    var c = ((2 > 1) && 1) || ((3 > 1) && 2) || 3;
1
2
3
4
5
6
7
8
9
10
11
    var b;

    if(2 > 1){
        b = 1;
    }else if((1 == 1 || 1 == 2) && 3 == 3){
        b = 2;
    }else {
        b = 3;
    }

    var c = ((2 > 1) && 1) || (((1 == 1 || 1 == 2) && 3 == 3) && 2) || 3;
1
2
3
4
5
6
7
8
9
10
11
简单说一下技巧,就是if->值 用&&,else用||,if中内容多的可以将内容都写进括号里。

在实际使用中,只有最简单的逻辑判断使用这种方法有实际意义,这会使代码更简洁。事实上,很多知名的js框架都充满了这种用法。至于后面那些个写法,别用!!!写出来容易被打。

微信扫码,体验更多开发案例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值