问题标签 [truthiness]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
raku - Raku 中的真值和假值是什么?
虽然总是可以使用 mixins 或方法覆盖来修改 Bool 强制,但默认情况下哪些值被认为是真实的,哪些值被认为是虚假的?
注意:这个问题以前被问过,但不幸的是它太老了,它的内容已经完全过时了,现代的 Raku 毫无用处。
elixir - 测试守卫的真实性
我可以使用警卫来测试参数是否为true
:
这对布尔值按预期工作:
但它无法测试其真实性:
是否可以测试警卫的真实性?例如,下面的函数可以使用上述风格的守卫来编写true?/1
吗?
javascript - 在 Javascript 中将比较 (< >) 运算符与非数字字符串一起使用
我试图弄清楚当我使用 < 或 > 运算符将数字与 javascript 中的非数字字符串进行比较时发生了什么。
当我在 JS 中进行以下比较时
它总是评估为假。
在这个比较中,每一方发生了什么?y 变成了什么?号码呢?
javascript - TypeScript 中的以下条件有什么区别?
这两个条件有什么区别?不会一样吗?
javascript - 与 `{}` 和真实性进行比较
我有一个 API 调用我来{}
获取我需要替换的参数。但是遇到麻烦……你能猜到下面会发生什么吗?
因此,鉴于它既真实又无法比较,我想知道如何替换它?
我也很想知道为什么,引擎盖下正在进行什么对象比较。
我的理解是:
==
按值测试相等(比较)===
通过引用测试相等(指向内存中相同对象的指针)。
但我想我需要对对象进行实际比较?我习惯于使用单元测试框架在哪里toBe()
或在哪里toEqual
工作toDeepEqual
。
和WAT!
javascript - //(typeof(myVar) != "undefined")// 逻辑上等价于真值 //if (myVar) 吗?
在一个大型项目中,我通过显式检查是否使用 typeof 设置了变量来进行大量异常处理。这有点冗长,我想将我的习惯改为简单的真实:
在下面的代码段和其他一些测试中,它们似乎是等效的。然而,在我进行全面的代码更改(并替换数百个)之前,我想确认它们在逻辑上是等效的,并了解任何可能让我受益的边缘情况。
javascript - !obj[key] 是检查 JavaScript 中对象属性是否存在的好习惯吗?
时不时地,我看到这种模式:
但我发现它非常错误。如果实际上 obj[key] 有值false
or''
怎么办?那么代码对我来说没有任何意义。
我经常看到这个有什么原因吗?为什么人们不使用.hasOwnProperty()
来检查 a 是否key
作为对象的属性存在?
javascript - 当我测试真实性时,为什么我的 Object.create(null) 值为真而 null 为假?
我正在尝试自己确认空对象是否为假。首先,我尝试使用 Object.create(null) 创建一个空对象。然后我决定针对 null 测试这个对象。
我写了一段代码来检查真实性:
但我的输出如下:
不是空的nullObject
也不是未定义的,但为什么它没有与 相同的真实值null
?这些不是null
对象类型的两个值object
吗?
python - 检验 Pandas 系列中值的真实性
在 pandas 中,是否可以构造一个布尔系列来使用自定义对象进行索引?
IE
返回
我想要的是这样的
或类似的,以便我可以使用 .first_valid_index() 来获取不同函数中的第一次出现。
有没有办法检查一个对象的“真实性”来构造新的系列?
javascript - 一次检查大量变量的真实性
我有一个包含许多字段和一个特殊处理函数的大型表单在
函数开头声明了几个不同类型的变量
我想检查用户是否在函数执行之前设置了所有变量
我想抓住a5
,因为它是一个空字符串
如果我们有 5 个以上的变量并且不是很优雅,则变体 1 不可读
变体 2 更加优雅和清晰,但不适用于非布尔类型的变量
如何一次检查大量变量?