“ not”运算符如何在此功能中工作?

时间:2020-09-13 21:45:51

标签: javascript function conditional-operator

我很难理解此函数如何根据num是否可被100整除而返回true或false。“ not”运算符使我失望。

    function divisible(num) {
    return !(num % 100)
}

我这样写函数:

    function divisible(num) {
    return num % 100 === 0 ? true : false;
}

第一个解决方案看起来更简洁,我想了解它的工作原理。

3 个答案:

答案 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

来自MDN docs on falsiness

一个伪造的值(有时写成虚假的)是在布尔上下文中遇到的一个假值。

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