簡體   English   中英

奇怪的Javascript行為 - js對象

[英]Strange Javascript behavior - js object

我想編寫一些具有不同轉換的狀態機。 但是當我想要選擇一個項目時,會發生一些奇怪的事情。

var transitions = {
    "on": {
        "false":"true",
        "true":"false"
    }
}

最后兩行是非常有趣的 - 相同的索引,第一個hardcoded ,第二個存儲在變量中。 為什么第一個返回正確的結果(false)而另一個未定義?

console.log(attr);                             // on
console.log(transitions[attr]);                // Object { false="true, true="false" }
console.log(current_val);                      // "true"
console.log(typeof current_val);               // string
console.log(transitions[attr]["true"]);        // false
console.log(transitions[attr][current_val]);   // undefined

info:我使用的是FF 14.0.1

注意console.log(current_val); 輸出"true"到控制台。 由於console.log不打印引號,因此必須是current_val包含'"true"' ,這與"true"

這是因為在最后一個語句中,true不會被求值為字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM