- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 !!
时出现奇怪的结果:
["a"].indexOf("b") === -1 // true
!!(["a"].indexOf("b") === -1) //true
!!["a"].indexOf("b") === -1 // false
!["a"].indexOf("b") === -1 //false
显然第一和第二个结果符合预期,但另外两个看起来很奇怪,对吧?我似乎找不到第二个和第三个语句不相等的原因,而且我当然无法理解第三个和第四个语句如何可能具有相同的 boolean 值。
我的猜测是 !!["a"]
在评估语句的其余部分之前被评估为 true
,但是为什么你不得到一个true.indexOf("b")
的TypeError
??
也许我误解了运算符优先级的工作原理,但如果有人能够解释,我想了解这里发生的情况。
最佳答案
!!["a"].indexOf("b") === -1//false
:
["a"].indexOf("b") 给出 -1,然后 !!-1 给出 true,它并不严格等于 -1,它给出 false。
!["a"].indexOf("b") === -1//false
:
["a"].indexOf("b") 给出 -1,然后 !-1 给出 false,这并不严格等于 -1 给出 false。
这里值得注意的是,在数字上下文中,在这些比较中使用(通常除了比较两个字符串),true 是 1,false 是 0。因此,即使 ==
也会给出两个错误。
另一个问题是precedence :
关于javascript - 范围!! boolean 强制转换中的 (bang bang),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46999055/
已结束。 这个问题是 off-topic .它目前不接受答案。 想要改进这个问题? Update the question所以它是on-topic堆栈溢出。 关闭 9 年前。 社区在4个月前审核了是否
我想做一个简单的函数,它接受一个数据框和用户为该数据框中的两列提供的名称。目的是让它可以轻松地与 dplyr 管道一起工作。它将产生一个粘合字符串的字符向量: func % func(lastName
使用 !! 时出现奇怪的结果: ["a"].indexOf("b") === -1 // true !!(["a"].indexOf("b") === -1) //true !!["a"].index
我想知道是否有可能创建一个单一的方法,比如说 Array#square(它对数组中的元素进行平方),它允许一个可选的 bang !标识符? 这样,接收者是否被永久修改只取决于该方法是否被调用。例如,是
我在具有两个主要组的长数据库 (full_database) 上运行一个函数,我需要在每个组的多个子集上执行各种线性模型。 然后,我将 R^2、调整后的 R^2 和 p.value 提取到一个数据框中
如果您阅读 jQuery inArray 页面上的评论 here ,有一个有趣的声明: !!~jQuery.inArray(elm, arr) 现在,我相信双感叹号会将结果转换为 boolean 类型
如果您阅读 jQuery inArray 页面上的评论 here ,有一个有趣的声明: !!~jQuery.inArray(elm, arr) 现在,我相信双感叹号会将结果转换为 boolean 类型
我使用动态变量(例如 ID )作为引用列名的方法,该列名将根据我当时正在处理的基因而改变。然后我使用 case_when 内的 mutate 创建一个新列,该列的值取决于动态列。 我认为 !! (ba
我在文件中有以下内容 demo.py:-//可执行位设置 #!/usr/bin/python import os 我在终端中使用了命令 bash demo.py 并期望第一行由 bash 解释,它将文
当我想引用在该 shell 中执行的最后一个命令时,我习惯于在 bash 中键入 !!。 $ ls -la drwxr-xr-x 4 me wheel 136 Jan 19 2013
在这个代码示例中,taking_damage 方法之前的感叹号有什么用? if warrior.health < 20 && !taking_damage?(warrior) warrior
按照惯例,我们向任何改变其参数的函数名称添加爆炸字符 !,因此对于以下代码示例,我们是否应该向仿函数添加 !名字? mutable struct Foo a::Int end (foo::Fo
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3年前关闭。 Improve t
如果没有对其参数进行硬编码,即 Me.VBProject.References!Excel,我无法成功使用 Bang (!) 运算符。在此示例中,Excel 引用是硬编码的。出于沮丧,我尝试了所有我能
我需要从 Java 小程序打开外部窗口。我怎样才能做到这一点而不使窗口成为小程序的子窗口?即使小程序关闭,我也需要窗口保持打开状态。我知道这是可以做到的。砰! Howdy 所做的正是我想要实现的目标。
这个问题已经有答案了: unnecessary exclamation marks(!)'s in HTML code (4 个回答) 已关闭 9 年前。 我遇到一个问题,我的 HTML 代码中出现
有没有办法检索 UNIX shell 将用于给定脚本的解释器的路径? (最好是在 Python API 中或作为 shell 命令)? 像这样使用: $ get_bang ./myscript.py
我有一个 Python 脚本 script.py,它已被定义为可执行文件并且以以下 sha-bang 开头: #!/usr/bin/env python -W all 但是当我从 shell 调用它时
是否可以在不使用赋值的情况下编写这段代码摘录? self.name = self.name.to_s.squeeze(' ').strip 我曾尝试使用 bang 版本的方法,但不能很好地使用,因为如
Airbnd suggests我这样做: !function() { // ... }(); 因为: This ensures that if a malformed module forgets
我是一名优秀的程序员,十分优秀!