问题标签 [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.

0 投票
6 回答
1112 浏览

raku - Perl 6 如何评估真实性?

在阅读有关 Perl 6 的文章时,我看到一个功能被吹捧,您不再需要这样做:

...但可以改为:

如果是这样,真理在 Perl 6 中是如何工作的?在 Perl 5 中,这非常简单:0、"" 和 undef 为假,其他一切都为真。

Perl 6 中关于布尔上下文的规则是什么?

0 投票
3 回答
906 浏览

ruby - 如何避免 Ruby 中的真实性?

是否有任何标准方法可以避免 Ruby 中的真实性,或者我需要推出自己的解决方案,例如

背景:我知道这to_bool会违背 Ruby 的宽容性质,但我正在玩三元逻辑,并希望避免意外地做类似的事情

我正在使用三元逻辑,因为我正在编写一个室友共享网站的解析器(供个人使用,而非商业用途),并且某些字段可能缺少信息,因此不知道该位置是否是否符合我的标准。但是,我会尝试限制使用三元逻辑的代码数量。

0 投票
4 回答
806 浏览

ruby - 在 ruby​​ 中,对于以问号结尾的方法名称,真实性是惯用的吗?

带有问号的方法返回真实的东西(例如,一个数字)以表明某事是真实的,或者true本身应该返回,这是否正常?

例如,在 Ruby 标准库或 Rails 中是否有任何真实性的例子?

背景:有人在一个单独的问题的答案中String#int?写了一个方法,它返回一个整数来表示真,并表示假。另一位用户对没有返回布尔值感到惊讶。nil

0 投票
1 回答
2501 浏览

ruby - 确定表达式的“真实性”?

可能的重复:
检查 Ruby 对象是否为布尔值
如何避免 Ruby 中的真实性?

给定如下数组(例如):

例如,有没有更简单的方法来确定哪些元素是实际的布尔值而不诉诸于此?

依赖数组中的位置不是一种选择,因为它会因情况而异。

0 投票
3 回答
757 浏览

ruby - 如何从 NilClass 继承或如何模拟类似的功能

我只想使用空对象设计模式,但我发现我可以从 NilClass 继承。

我可以写一个方法“nil?” 并返回 false 但如果用户在下面编写代码怎么办

为了澄清我试图做的是:

0 投票
2 回答
1616 浏览

javascript - 理解 JavaScript 提升和真假

我一直在阅读有关 JavaScript 提升的文章。

JavaScript 范围界定和提升,作者 Ben Cherry
关于“提升”的两个词,作者:Dmitry Soshnikov

还有更多关于 JavaScript 类型强制、真假测试的信息: Truth、Equality 和 JavaScript以及其他一些资源

在练习一些时,发现我错过了一些关于提升和变量“真假”的重要概念。

1:带有重复变量声明的“if”真值测试

o/p:inside if

怀疑: 'foo' 值为 '1',if(!foo)应该评估为false并且该块不应该被执行(引用上面的资源:提升只影响var&function声明,但不影响执行)。但是为什么会显示该警报。如果我直接使用,情况并非如此false(如下面的无技巧代码所示:片段#3)

2:没有重复变量声明的“if”真值测试

o/p:无输出;表示控制未进入“if”块
这是人们可以期待的

3: 'if' 使用 'false' 重复变量声明

o/p:无输出;表示控制未进入“if”块
这是人们可以期待的

有人请澄清。谢谢

0 投票
1 回答
98 浏览

ruby - 在采用布尔参数的环境中,包装所有函数而不是允许它们被隐式强制是一个好主意吗?

String#=~函数为例。如果找到匹配项,它将返回第一个匹配项的索引,这Fixnum在布尔环境中始终表现为真。如果未找到匹配项,则返回 null,即为 false。

现在假设我有一堂课:

这段代码几乎可以按预期工作,但试用条件运算符中的第一个元素是我的问题的主题。

不包装是个好主意myprop =~ /awesome/吗?我不是在谈论将其抽象为另一种方法def is_awesome?; myprop =~ /awesome/; end,而是我当前的约定(强制 Ruby 将 Fixnums 隐式转换为 true 并将 nils 转换为 false)是否比将条件包装到我自己转换的内容中更可取。我可以很容易地做到这一点:

我看到的第一种风格的优点:

  • 大多数维护者(包括未来的我)都习惯了隐式类型
  • 它更短

我看到第二种风格的优点:

  • =~更明显的是,该方法的结果与其布尔解释之间的关系是什么
  • 它使您可以更自由地使用更具创造性的显式转换

我怀疑可能有一些中间立场,在它是惯用的情况下(例如,正则表达式匹配 using =~)你留下隐式类型转换,而在不是时显式地做它(例如,你自己的属性,特别是如果它们有多个返回类型)。

我很感激社区可以就这个问题分享任何见解或经验。

0 投票
1 回答
350 浏览

javascript - Javascript未定义字符串属性真实性

我经常在我的 Javascript 中使用以下模式:

因为它比:

我也经常使用相同模式的轻微变体:

这一切都很好......除了问题是,我最近发现:

换句话说,如果你有一个字符串,并且你做了 string.aPropertyThatStringDoesntHave || foo,你既不会得到 foo 也不会得到实际值;相反,你会得到未定义的。

谁能解释这是为什么?在我看来,如果 foo.x 未定义,那么 foo.x || anyElse 应该总是导致anythingElse ...那为什么不呢?

0 投票
1 回答
192 浏览

objective-c - 条件值(如 while 循环)作为方法参数

所以,我试图有一种有效地做到这一点的方法:

虽然您的第一个建议可能是BOOL考虑以下例外情况:

原语的使用_Bool使我能够解决前一个问题,但后一个问题仍然存在。是否有某种方法可以评估与类型无关的参数的真实性与while()工作方式相同?

0 投票
1 回答
1542 浏览

ruby - YARD 真实性约定

是否有约定表明 YARD 样式文档中的参数仅用于其“真实性”状态,即您只想知道它false是否nil真实?

什么通常代替Truthy以下内容?

我在文档中能找到的最接近的是布尔值,这并不是我真正想要的。