Javascript 相等比较赋值

Javascript 相等比较赋值,javascript,Javascript,我试图理解这行代码是如何工作的。显然,如果LAUNCH的值为'ready',isReady将返回true,否则返回false。这里发生了什么 const LAUNCH = 'ready' const isReady = LAUNCH === 'ready' 这里发生了什么 const LAUNCH = 'ready' const isReady = LAUNCH === 'ready' 首先,它要计算正确的表达式LAUNCH=='ready',这是真的 然后,只需将该值赋给isReady

我试图理解这行代码是如何工作的。显然,如果LAUNCH的值为'ready',isReady将返回true,否则返回false。这里发生了什么

const LAUNCH = 'ready'

const isReady = LAUNCH === 'ready'
这里发生了什么

const LAUNCH = 'ready'

const isReady = LAUNCH === 'ready'
首先,它要计算正确的表达式LAUNCH=='ready',这是真的

然后,只需将该值赋给isReady变量。isReady变量将每次保存一个布尔值

这里发生了什么

const LAUNCH = 'ready'

const isReady = LAUNCH === 'ready'
首先,它要计算正确的表达式LAUNCH=='ready',这是真的


然后,只需将该值赋给isReady变量。isReady变量每次都会保存一个布尔值。

要添加到正确的答案中,求值的顺序决定了世界上所有的差异

下面的代码片段旨在帮助您更好地理解如何在JS中计算事物:

var obj = {
    true: "stuff"
}

var stuff = function () {
    return function () { 
        return 2+2
    }
}

window[obj["hi".length == 2]]()() == 4 // this weird statement returns true
这里发生的是以下评估顺序:

hi.length被计算为2 2==2的计算结果为真 将true强制为字符串后,obj[true]将计算为stuff window[stuff]被计算为一个现有函数 调用该函数将返回另一个函数 调用另一个函数执行2+2并返回4 最后,4==4被计算为true
为了补充正确的答案,评估的顺序决定了世界上所有的不同

下面的代码片段旨在帮助您更好地理解如何在JS中计算事物:

var obj = {
    true: "stuff"
}

var stuff = function () {
    return function () { 
        return 2+2
    }
}

window[obj["hi".length == 2]]()() == 4 // this weird statement returns true
这里发生的是以下评估顺序:

hi.length被计算为2 2==2的计算结果为真 将true强制为字符串后,obj[true]将计算为stuff window[stuff]被计算为一个现有函数 调用该函数将返回另一个函数 调用另一个函数执行2+2并返回4 最后,4==4被计算为true
如果你遇到这样的事情,有一个有用的表格可以指导你。谢谢。非常有帮助!如果你遇到这样的事情,有一个有用的表格可以指导你。谢谢。非常有帮助!Launch=='ready'类似于Launch变量严格等于ready吗?结果为true这就是为什么当您打印isReady时,结果为true..Launch==='ready'就像Launch变量严格等于ready一样?结果为真这就是为什么当你打印isReady时结果为真。@david这不应该是公认的答案。这只是一个旁注。很好的解释!这很有道理@阿德林,祝贺你的精彩配音。@MihaiAlexandru Ionut,呵呵:multumesc@david这不应该是公认的答案。这只是一个旁注。很好的解释!这很有道理@阿德林,祝贺你有一个很棒的配音。@MihaiAlexandruIonut,呵呵:multumesc