2012-08-29 187 views
-3

我測試這個代碼:JavaScript變量返回空白

var thecol = ''; 

// Note: I know that value.cat = '3' 

if (value.cat === '1') { 
     thecol = 'cat1'; 
    } else if (value.cat === '2') { 
     thecol = 'cat2'; 
    } else if (value.cat === '3') { 
     thecol = 'cat3'; 
    } else if (value.cat === '4') { 
     thecol = 'cat4'; 
    } else if (value.cat === '5') { 
     thecol = 'cat5'; 
    }; 

alert(thecol); 

警報是空白的某些原因。

任何想法爲什麼。

+8

'value.cat'顯然是_not_''3''。使用調試器,你的問題在另一個城堡。 http://jsfiddle.net/mattball/V8dWg/ –

+4

難道是即使你的value.cat === 3 ...它不==='3'。我建議你將等於改爲==。三等於意味着比較類型以及值...但如果您的value.cat是數字,它不會匹配您的測試,因爲它們是字符串。 – Pebbl

+1

是3還是'3'?你有沒有聽說過[switch語句](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/switch)? – epascarello

回答

3

您確定value.cat'3'而不是3?您可以通過登錄typeof value.cat輕鬆找到。由於您正在使用深層平均值,因此只有在兩者的值和類型相同的情況下才會返回true:

'3' === 3 // -> false 
'3' == 3 // -> true