美文网首页
【Tips】JS中的&&、|| 运算符

【Tips】JS中的&&、|| 运算符

作者: longjianjiang | 来源:发表于2017-05-23 23:32 被阅读17次

前言

今天在看React Native的教程时,有个栗子是讲关于TextInput的,将输入的内容,按空格分隔替换为一个emoji表情,用到的代码如下:

{this.state.text.split(' ').map((word) => word && '😂').join(' ')}

开始我不知道为什么两个字符串进行逻辑与操作,为什么返回的是后面的字符串?

然后

后来写了一些栗子如下:

var a = 3 && 'Hello';   // a -> 'Hello'
var a = 'Hello' && 'World'; // a -> 'World'
var a = 'Hello' && null; // a -> null
var a = 0 && 'Hello'; // a-> 0
var a = 'Hello' && ''; // a -> ""
var a = null &&  0; // a -> null
var a = 0 &&  null; // a-> 0

于是根据栗子结果猜想:var a = x && y

如果&&的结果为ture(两个操作数都为true),那么,结果是&&操作符后面的操作数;
如果&&的结果为false(两个操作数一个为true一个为false),那么,结果是&&操作符中为false的操作数;
如果&&的结果为false(两个操作数都false),那么,结果是&&操作符前面的操作数;

下面是试了下逻辑或的栗子:

var a = 3 || 'Hello';   // a -> 3
var a = 'Hello' || 'World'; // a -> 'Hello'
var a = 'Hello' || null; // a -> 'Hello'
var a = 0 || 'Hello'; // a-> 'Hello'
var a = 'Hello' || ''; // a -> 'Hello'
var a = null ||  0; // a -> 0
var a = 0 ||  null; // a-> null

同样根据栗子结果猜想:var a = x || y

如果||的结果为ture(两个操作数都为true),那么,结果是||操作符前面的操作数;
如果||的结果为true(两个操作数一个为true一个为false),那么,结果是||操作符中为true的操作数;
如果||的结果为false(两个操作数都false),那么,结果是||操作符后面的操作数;

最后

😂

相关文章

网友评论

      本文标题:【Tips】JS中的&&、|| 运算符

      本文链接:https://www.haomeiwen.com/subject/ujagxxtx.html