[' null ','',‘undefined’].indexOf(字符串)<0与(str !== null || str !== '‘|| str !== undefined)等价吗?
[' null ','',‘undefined’].indexOf(字符串)<0与(str !== null || str !== '‘|| str !== undefined)是不等价的。
首先,[' null ','',‘undefined’].indexOf(字符串)<0 是通过数组的indexOf方法来判断字符串是否存在于数组中,如果不存在则返回-1,大于等于0表示存在。因此,[' null ','',‘undefined’].indexOf(字符串)<0 表示字符串不存在于数组中。
而 (str !== null || str !== '‘|| str !== undefined) 是一个逻辑表达式,用于判断字符串是否不等于null、''(空字符串)或undefined。如果字符串满足其中一个条件,则表达式为真。
这两个表达式的逻辑是不同的。[' null ','',‘undefined’].indexOf(字符串)<0 表示字符串不存在于数组中,而 (str !== null || str !== '‘|| str !== undefined) 表示字符串不等于null、''或undefined中的任何一个。
举个例子来说明这两个表达式的区别:
假设字符串为null,那么 (str !== null || str !== '‘|| str !== undefined) 的结果为真,因为字符串不等于''和undefined。但是[' null ','',‘undefined’].indexOf(字符串)<0 的结果为假,因为字符串存在于数组中。
因此,这两个表达式是不等价的。
领取专属 10元无门槛券
手把手带您无忧上云