js有问题吗?
if("hello".indexOf("world")) { // I forgot to add > -1 here
console.log("hello world");
}
Run Code Online (Sandbox Code Playgroud)
基本上if(-1)
是真的.这怎么可能?我花了一整天才解决这个问题.是否列出了列出这些类型的列表?或者可以用来捕捉这些东西的工具.
我在Python中了解了Truthiness,并理解[]
和解释类似的空对象一样False
。
但是,当我在REPL中键入以下内容时,它将返回False
:
>>> [] == False
False
Run Code Online (Sandbox Code Playgroud)
这怎么可能?
我有一个关于javascript truthy/falsy的问题
据我所知,包括负数在内的任何非零数字都是真实的.但如果是这样的话,为什么呢
-1 == true //returns false
Run Code Online (Sandbox Code Playgroud)
但是也
-1 == false //returns false
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?我会很感激.
我已经读过,当python评估一个条件时,if x:
就会被翻译成类似的东西if bool(x):
.为什么我会看到很多bool()
直接调用的代码?这主要是为了可读性还是有其他优势?
我们知道如何bool()
作用于各种Python对象,如str
,int
,list
.
这是一个相反的问题.
您可以将bool转换为int as
>>> int(True)
1
>>> int(False)
0
Run Code Online (Sandbox Code Playgroud)
我认为有点意义,但我们得到了字符串
>>> str(False)
'False'
>>> str(True)
'True'
Run Code Online (Sandbox Code Playgroud)
我没有得到,因为它首先似乎暗示了False
和之间的某种关系'False'
,这在代码层面上似乎只是相关的.如果以这种方式处理代码中的内容,那么它是如何工作的......
>>> str(not True)
'False'
Run Code Online (Sandbox Code Playgroud)
其次,它的一致性并不明显,因为
>>> bool(str(False))
True
Run Code Online (Sandbox Code Playgroud)
我的问题是...有没有我们允许投一个原因bool
,以str
这种方式?list
例如,不允许它......
>>> list()
[]
>>> bool()
False
>>> bool(list())
False
>>> list(bool())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'bool' object is not iterable
Run Code Online (Sandbox Code Playgroud) 我正在运行这样的字符串相等检查:
if($myString eq "ExampleString")
Run Code Online (Sandbox Code Playgroud)
是否存在myString
可能导致执行进入if
结构的值,无论字符串文字是什么?
当我使用 indexOf 时,我无法确定 JavaScript 中的 -1 是真还是假。
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
Run Code Online (Sandbox Code Playgroud)
为什么最后两行给出真/假?
据我所知,只有 == 允许类型转换,因为 (=== 是严格的)
(!a) 和 (!b) 在内部使用 (==) 吗?
两者之间是否存在实际差异?
if statement:
Run Code Online (Sandbox Code Playgroud)
和
if statement == True:
Run Code Online (Sandbox Code Playgroud)
除了第一个更短,一个有更高的优先权,还是一个更慢?
编辑:
我意识到这可能不是很清楚,但statement
通常是这样statement = True
.
truthiness ×8
python ×4
javascript ×3
boolean ×2
casting ×1
equality ×1
if-statement ×1
perl ×1
python-3.x ×1
string ×1