学习RN的过程中发现了一段很有意思的代码:
<Text style={{padding: 10, fontSize: 42}}>
{text.split(' ').map((word) => word && '🍕').join(' ')}
</Text>
大意是将text中的元素全部转为🍕,但是其中的&&转换方式还是第一次见,于是自己尝试着试验一下,发现还是之前接触到的一个零碎知识点,在红宝书也有过说明,简单来引入一下,猜猜输出结果是什么:
console.log(3&&4)
console.log(0&&4)
console.log(3||4)
console.log(0||4)
console.log(4&&0)
console.log(4||0)
谷歌控制台输出如下:
简单的总结一下规律:
&&与||运算符相信大家都知道,上述的输出的结果取决于决定他们输出结果的元素,听起来是有点儿绕口,但是仔细思考一下,&&运算符号只要有一个为假,那么结果一定会是假,||运算符号只有一个为真,那么结果一定会是真。
比如A&&B,如果A为假,那么不用再看B了,结果一定是假,因此决定元素是A,输出A;反之,如果A为真,那么决定元素在于B,结果的真假取决于B的真假,输出B;再看A||B,如果A为真,那么结果一定为真,输出A,如果A为假,那么决定元素在于B,结果真假取决于B的真假,输出B;