首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

[' null ','',‘undefined’].indexOf(字符串)<0与(str !== null || str !== '‘|| str !== undefined)等价吗?

[' 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 的结果为假,因为字符串存在于数组中。

因此,这两个表达式是不等价的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 如何答一道惊艳面试官的数组去重问题?

    ” 兼容性场景考虑(数组中是否包含对象,NaN等?) 我们要考虑这个数组中是否有nullundefined、NaN、对象如果二者都出现,上面的所有数组去重方法并不是都是适用哦,下面详细说一下。...); // false console.log(null == null); // true console.log(null === null); // true console.log(undefined... Set 的一点说明: 上面代码中console.log(NaN === NaN); // false, indexOf 底层使用的是 === 进行判断,所以使用 indexOf 查找不到 NaN.../, /a/, "1", 1, String, 1, String, NaN, NaN, null, undefined] 对象和 NaN 不去重 数字 1 也不去重 Array.filter()加 indexOf...[1, "1", null, undefined, String, String, /a/, /a/] 对象不去重 NaN 会被忽略掉 Object 键值对去重 [1, "1", null, undefined

    1.2K40

    es6 随性学习之 字符串 String

    > javaScript数据类型有: Number、Boolean、String、undefined、object、Null // ES6 新增 Symbol // es10中新增的数据类型 属于原始数据类型...、object、Null、Symbol、biglnt` + 基本数据类型有:`Number、Boolean、String、undefinedNull、Symbol、biglnt` + 引用类型:`object...('bbb')) // false 要查找字符串的位置还得用indexOf、lastIndexOf // 顺带科普一下这两个方法 let str1 = 'Hello World'...// indexOf() 第一次出现的位置 console.log(str1.indexOf('e')) // 1 (字符串第一位为 0 ) // lastIndexOf() 字符串最后出现的位置...() repeat英文翻译都是重复 所以javascript中也是对字符串进行重复 并反会重复后的字符串let str = 'hello,' // 参数为数字 重复几次就传几 console.log(str.repeat

    47432

    开发中经常遇到的JavaScript问题整理(超实用)

    在 C 语言中 -1 代表函数执行失败,大于等于 0 的值代表函数执行成功 比如在 JavaScript 中字符串indexOf 方法也遵循这一惯例,该方法在字符串中搜索指定的字符串,如果找到就返回该子字符串所在的位置...indexOf 一起检结果强制类型转换为 真/假 值 const str = 'hello world'; ~str.indexOf('lo'); // -4,真值 if (~str.indexOf('...lo')) { // true // 找到匹配 } ~str.indexOf('ol'); // 0,假值 !...~str.indexOf('ol'); // true if (!...这个问题考查的数据类型转换,== 类型转换有个基本规则 NaN 任何值都不相等,包括自己本身 undefined null 相等(==),其他都不等 对象字符串类型做比较,会把对象转换成字符串然后做比较

    1.5K10
    领券