JavaScript中的return语句中的&&的意义

在廖雪峰大佬的教程里廖雪峰教程发现了一个语句,就是

return s && s.trim()

真的是不明白在return中是做判断是什么意思,于是搜了一下,在stackflow中找到了答案 正解

return s && s.trim()

的意思就是:

if (s) return s.trim();

else return s;

廖老师的代码如下

var arr = ['A', '', 'B', null, undefined, 'C', '  '];
var r = arr.filter(function (s) {
    return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
});

这里面我们可以知道,对于'null’ 和'undefined',他们并没有trim()的方法,所以逐一的去带入可以发现:

if('A')不为false,return 'A'.trim();这里结果为'A';

if('')为false,return '';为空;

if('B')不为false,return 'B'.trim();这里结果为'B'为true,执行filter()函数,传‘B’;

if(null)为false,return null;这里结果为空,为false,丢弃;

if(undefined)为false,return undefined;这里结果为空,为false,丢弃;

if('C')不为false,return 'C'.trim();这里结果为'C',执行filter()函数,传‘C;

if('   ')不为false,return '   '.trim();这里结果为空,为false,丢弃;

同理,我们可以推出return a||b;和这个相反,即return b if a is falsy, return a if a is truthy

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值