我很难理解此函数如何根据num是否可被100整除而返回true或false。“ not”运算符使我失望。
function divisible(num) {
return !(num % 100)
}
我这样写函数:
function divisible(num) {
return num % 100 === 0 ? true : false;
}
第一个解决方案看起来更简洁,我想了解它的工作原理。
答案 0 :(得分:1)
在javascript中,import os
try:
with youtube_dl.YoutubeDL(options) as ydl:
ydl.download([video_url])
except:
os.system(f"""youtube-dl -o "song.%(ext)s" --extract-audio -x --audio-format mp3 {video_url}""")
(零)是falsy,这使得0
(非零)truthy。
一个伪造的值(有时写成虚假的)是在布尔上下文中遇到的一个假值。
JavaScript使用类型转换将任何值强制转换为需要条件的上下文中的布尔值,例如条件和循环。
因此,在您的情况下,这些是等效的:
!0
答案 1 :(得分:0)
a == 0
和!a
在JavaScript中是等效的,因为0为Falsy,并且在其上应用类似!
的布尔运算符时,它将被视为false
。因此,!(x % y)
仅在整数除法的余数为true
时才求值为0
,因为所有其他整数值都是真实的。
答案 2 :(得分:-1)
请注意,在JS中,0
代表falsy
,每个其他非空数值对应于truthy
, “在布尔上下文中” 。
如果num
被100整除,则num%100
将等于0
0
的否定,即!(0)
是1
,表示true, the number is perfectly divisible by 100
。
否则,如果num%100
给出的值不是0
,并且<anything other than 0>
的否定为0
,则对应于false, the number is not completely divisible by 100