在javascript中-1是真还是假?

2023-12-04

当我使用indexOf时,我无法确定-1在javascript中是真还是假。

let a =  'abc'.indexOf('abc');  
let b =  'def'.indexOf('abc');   

console.log(a);     // 0
console.log(b);     // -1
console.log(!a);    // true
console.log(!b);    // false

为什么最后两行给出 true/false?

据我了解,只有 == 允许类型转换,因为 (=== 是严格的)

(!a) 和 (!b) 是否在内部某个地方使用了 (==) ?


From MDN:

在 JavaScript 中,真值是在布尔上下文中计算时转换为 true 的值。所有值都是真值,除非它们被定义为假值(即除了 false、0、“”、null、undefined 和 NaN)。(强调我的)

这意味着-1被认为是“真实的”。你不应该检查“真实性”directly关于返回的值indexOf反正。-1 has a specific意思是您要查找的元素在数组中不存在。因此,明确测试更有意义-1 using ===。对于任何阅读代码的人来说,其意图也比强制返回值要清楚得多indexOf并据此做出决定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在javascript中-1是真还是假? 的相关文章

随机推荐

  • 找到具有左特征值的马尔可夫稳态(使用 numpy 或 scipy)

    我需要使用一些 python 代码使用其转换矩阵的左特征向量找到马尔可夫模型的稳态 它已经成立于这个问题scipy linalg eig 无法提供所描述的实际左特征向量 但那里演示了修复 像往常一样 官方文档大多无用且难以理解 比不正确的格
  • Solr 中“multiValued”字段类型有什么用?

    我是 Apache Solr 的新手 即使读完之后文档部分 我发现很难清楚地理解该功能和使用multiValued字段类型属性 Solr 在内部做什么 处理 处理标记为的字段多值 Solr 中的字段之间的索引有什么区别多值那些不是 有人可以
  • 如何在意图之间传递对象

    我有一个类 其中包含我想在意图之间传递的数据 该类具有包含另一个类对象的数组列表 这是我的课 public class ParsedData implements Parcelable public String error public
  • C# 中交错数组的内存分配与 C++ 中二维数组的内存分配

    我有一个关于 C 中的锯齿数组的问题 当我在互联网上的某个地方读到有关锯齿数组的信息时 我认为 C 中 2d 锯齿数组的内存分配与 C 中 2d 数组的内存分配相同 因为 2d 锯齿数组有一个指针数组 每个指针引用一个元素数组 例如整数元素
  • Equals 和 GetHashCode 中延迟加载的 NHibernate 属性

    下面的问题该如何处理呢 我们正在使用延迟加载NHibernate属性以及每当我们打电话时Equals or GetHashCode 使用的任何属性都将被延迟加载 可能会导致一系列延迟加载操作 急切加载可以作为替代方案 但我认为仅在特定情况下
  • 如何将数据传递到 Angular 路由组件?

    在我的 Angular 2 路线模板之一中 第一个组件 我有一个按钮 第一个组件 html div class button Pass data and route div My goal是为了实现 单击按钮 gt 路由到另一个组件 同时保
  • 无法将 ArrayList 传递给活动

    这是代码 ArrayList
  • 使用 HTTP 的 WCF 自定义用户名身份验证

    我正在尝试配置我的 WCF 服务以通过 HTTP 和我的 ASP NET 开发服务器使用自定义用户名验证器 以下是服务模型的部分
  • Python用交集合并多个列表[重复]

    这个问题在这里已经有答案了 可能的重复 Python 基于交集的简单列表合并 我有多个列表 list 1 2 3 3 5 6 8 9 10 11 12 13 是否有一种智能且快速的方法来获取至少具有一个交集的所有子列表 在我的示例中 我希望
  • 值/占位符 - 单词的不同样式

    我的占位符有问题 我想问 是否有可能在输入字段中设置值的样式 但以不同的方式设置该值的单词的样式 例如 如果我们有具有初始值的输入字段 First Name 我希望有green color for First and red color f
  • 为什么 ASP.NET FormsAuthentication cookie 无法验证用户身份?

    我有一个使用默认 SqlMembershipProvider 和 FormsAuthentication 的网站 我可以使用内置的登录控件和 或以编程方式调用所有方法来对用户进行身份验证并获得相同的结果 用户已通过身份验证并创建了 cook
  • 查找数组中的多个众数

    我正在尝试编写一个java方法来查找数组中的所有模式 我知道有一种简单的方法可以在数组中查找模式 但是当有多个单一模式时 我的方法仅输出其中一个模式 我试图找到一种方法 但不确定如何解决这个问题 谁能帮我找到数组中的所有模式 谢谢 是的 这
  • 是否有 R 函数来转义正则表达式字符的字符串

    我想构建一个正则表达式来替换一些要搜索的字符串 因此需要对这些字符串进行转义 然后才能将它们放入正则表达式中 这样如果搜索的字符串包含正则表达式字符 它仍然有效 有些语言具有可以为您执行此操作的函数 例如 pythonre escape h
  • 参数类型“T”可能寿命不够长

    我正在尝试用 Rust 编写一个小程序 但无法让它工作 我在一个较小的脚本中重现了该错误 fn main let name String from World let test simple name println Hello test
  • sed 在两个标签之间查找并替换多行

    我想找到并替换一个模式 text hold1 hold2
  • Flash Builder - 如何构建或包含 SWC

    我试图在这里重新创建本教程的现代化版本 但我在构建和引用 SWC 文件以包含在我的 Flash Builder 项目中时遇到问题 每当我尝试引用 SWC 时 Flash 都会说它 不是编译时常量 任何人都可以帮助我构建 SWC 的过程 主要
  • Zend框架文件上传非法上传

    我正在尝试使用其他文本字段以普通形式上传文件 到目前为止 文件被上传到临时文件夹 但没有上传到我的目标文件夹 我总是收到此错误 文件 上传 被非法上传 这可能是一次可能的攻击 我已经检查了临时文件的文件名 并且在正确的文件夹中具有正确的 u
  • PHP - 使用正则表达式模式删除中间的短代码和内容

    我有以下字符串 text My example text shortcode name content of shortcode shortcode name is cool 以及以下模式 pattern shortcode name 它给
  • Maven 下载的扩展名为 .lastUpdated

    我有一个带有 m2eclipse 和 subversive 的 Eclipse 设置 我从svn导入了maven2项目 但我收到错误消息 提示缺少一大堆工件 例如 缺少工件 org springframework spring test j
  • 在javascript中-1是真还是假?

    当我使用indexOf时 我无法确定 1在javascript中是真还是假 let a abc indexOf abc let b def indexOf abc console log a 0 console log b 1 consol