首页 > 解决方案 > coffeescript - 为什么这总是输出为“1”?

问题描述

即使 randomArea 不是北,为什么它总是输出为“1”?

if randomArea = "North"
    id.innerHTML = "1"
else if randomArea = "South"
    id.innerHTML = "2"
else if randomArea = "East"
    id.innerHTML = "3"
else if randomArea = "West"
    id.innerHTML = "4"
else if randomArea = "Central"
    id.innerHTML = "5"
else if randomArea = ""
    id.innerHTML = "6"

标签: javascripthtmlcoffeescript

解决方案


在 JavaScript 中,=是一个赋值运算符,它将始终分配值,if 语句将评估其真实性。在这种情况下,“North”是一个非空字符串,它是真实的,所以id.innerHTML它的值是"1". ==应该使用相等运算符 ,来代替。

if randomArea = "North"       // <-- here
    id.innerHTML = "1"
else if randomArea = "South"
    id.innerHTML = "2"
else if randomArea = "East"
    id.innerHTML = "3"
else if randomArea = "West"
    id.innerHTML = "4"
else if randomArea = "Central"
    id.innerHTML = "5"
else if randomArea = ""
    id.innerHTML = "6"

您需要更改所有相等条件以评估真实性,而不是分配值,这将始终true与非空字符串一样解析:

if randomArea == "North"            // <-- here
    id.innerHTML = "1"
else if randomArea == "South"       // <-- here
    id.innerHTML = "2"
else if randomArea == "East"        // <-- here
    id.innerHTML = "3"
else if randomArea == "West"        // <-- here
    id.innerHTML = "4"
else if randomArea == "Central"     // <-- here
    id.innerHTML = "5"
else if randomArea == ""            // <-- here
    id.innerHTML = "6"

笔记:

  • // <-- here有可能需要删除的有效 CoffeeScript

推荐阅读