首页
学习
活动
专区
工具
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 的结果为假,因为字符串存在于数组中。

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

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

相关·内容

string null和“”的区别 str == null; .equals(str); str.length 0; str.isEmpty();的区别

1、str == null; 2、"".equals(str); 3、str.length 0; 4、str.isEmpty(); 注意:length是属性,一般集合类对象拥有的属性,取得集合的大小...length(); 说明: 1、null表示这个字符串不指向任何的东西,如果这时候你调用它的方法,那么就会出现空指针异常。 2、""表示它指向一个长度为0的字符串,这时候调用它的方法是安全的。 3....如果str1=null;下面的写法错误: if(str1.equals("")||str1==null){ } 正确的写法是 if(str1==null||str1.equals("")){ //所以在判断字符串是否为空时...所以,判断一个字符串是否为空,首先就要确保他不是null,然后再判断他的长度。 String str = xxx;   if(str != null && str.length() !...= 0) { }

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

    ” 兼容性与场景考虑(数组中是否包含对象,NaN等?) 我们要考虑这个数组中是否有null、undefined、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.3K40

    es6 随性学习之 字符串 String

    > javaScript数据类型有: Number、Boolean、String、undefined、object、Null // ES6 新增 Symbol // es10中新增的数据类型 属于原始数据类型...、object、Null、Symbol、biglnt` + 基本数据类型有:`Number、Boolean、String、undefined、Null、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

    48332

    开发中经常遇到的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.6K10
    领券