问题标签 [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 投票
2 回答
1350 浏览

php - 为什么 SplFileInfo 不能转换为布尔值?

PHP 的限制之一是对象总是计算为true. 但是SplFileinfo(以及 Symfony 等子类UploadedFile)的行为不同:

这是一个错误吗?在 5.3 和 5.4 中测试。也发生在SplFileObject. 可能的相关问题。还有一个 2011 年的 Symfony 问题

0 投票
2 回答
89 浏览

string - Perl 中是否有一个字符串等于 eq 下的所有其他字符串?

我正在运行这样的字符串相等检查:

无论字符串文字是什么,是否有一个值myString会导致执行进入结构?if

0 投票
2 回答
275 浏览

arrays - What is the bash equivalent of Python's all?

In a part of a bash script I'm writing, I'd like to check if any of the variables in a list are unset.

In Python, there is a built-in function all that returns True if all elements in an iterable are true:

Is there something similar in bash? Currently the way I'm doing this is by looping through each variable and setting a variable / breaking out of the loop if it encounters a variable that is null or an empty string, e.g.

...but perhaps there's a more optimal way of checking this?

0 投票
2 回答
1598 浏览

ruby - 为什么真值&&“字符串”返回“字符串”

假设我有类似的东西

这是有道理的,所以我尝试类似:

这让我感到惊讶,因为我经常会做类似的事情if something && something,我一直认为那是评估为真并且会返回真。进一步的实验做这样的事情:

看起来 Ruby 要么返回最后一个值,要么返回它找到的第一个假值。为什么这样做?这是一个正确的心理模型吗?

0 投票
4 回答
1592 浏览

javascript - 如果(负数)为真?js有什么问题吗?

js有什么问题吗?

基本上if(-1)是真的。这怎么可能?我花了一整天的时间来解决这个问题。是否有列出此类内容的列表?或可用于捕获此类事物的工具。

0 投票
5 回答
218 浏览

javascript - 空数组是否总是被解释为 TRUE?

所有浏览器版本都是这种情况吗?意思是,一个空数组总是被认为是 TRUE 而不是 FALSE 作为布尔表示?

0 投票
6 回答
6857 浏览

javascript - (A == B == C) 比较如何在 JavaScript 中工作?

我期待以下比较给出错误:

但奇怪的是它返回了false

更奇怪的是,

返回true

这种“三元”比较是如何工作的?

0 投票
1 回答
589 浏览

javascript - 为什么 {} == false 会抛出异常?

在 IE 和 Chrome 中,在 JavaScript 控制台中输入此代码会引发异常:

但是,所有这些语句的评估都没有问题:

这是故意行为吗?为什么会这样?

0 投票
3 回答
282 浏览

javascript - 如果 ([] == false) 为真,为什么 ([] || true) 会导致 []?

只是在做一些测试,我发现这很奇怪:

给出 true,这是有道理的,因为 double equal 只比较内容而不是类型,并尝试进行类型强制。但是如果它比较内容并返回 true,这意味着 [ ] 是错误的(如果你也[] == true得到了错误),这意味着:

应该给假,但它给[],使它成为真?为什么?

另一个例子:

给出真实的,但"\n " || false给出"\n "?是否有对此的解释,或者它只是一个奇怪的东西。

当我在 C 中尝试这个时,我们得到:

输出:

这是有道理的,但鉴于 C 对 Javascript 的影响,行为是不同的。

0 投票
1 回答
74 浏览

python - 对象具有价值但似乎不存在?

我有以下 Python 代码:

我在调试器中单步执行它,并注意到即使bedroom == 0,流程也会跳转到else语句。

为了测试这一点,我尝试了:

有人可以解释这里发生了什么吗?