我無法找到爲什麼這不起作用:三元運算符不工作,我可以把(這個或那個)作爲表達式嗎?
value = ((value == undefined) || (typeof(value) !=== "number")) ? 1 : value;
據我所知這應該設置value
要麼1
或value
(變量),這取決於是否value
不是數字。
如果值不是數字,請將其更改爲1
,如果是,請將其保留。
我在這裏做錯了什麼?
我無法找到爲什麼這不起作用:三元運算符不工作,我可以把(這個或那個)作爲表達式嗎?
value = ((value == undefined) || (typeof(value) !=== "number")) ? 1 : value;
據我所知這應該設置value
要麼1
或value
(變量),這取決於是否value
不是數字。
如果值不是數字,請將其更改爲1
,如果是,請將其保留。
我在這裏做錯了什麼?
從快看!
===(有三個等號)是一個錯字。正確的運算符是!==(兩個等號)。
無論何時您遇到Javascript問題,我強烈建議您在http://www.jslint.com/處處理所有警告和問題 - 這有助於捕捉大量眼睛看不到的東西。
謝謝。該網站是驚人的,並會幫助我這麼多! –
如果將!===
(實際上並不存在)更改爲!==
(這是===
的邏輯反轉),則此方法正常。
您正在使用一個太多等號。正確的語法是!==
。
只需使用value = (typeof(value) !== "number") ? 1 : value;
的(value == undefined)
條件是多餘的,因爲後者總是爲真時,前者。
謝謝阿薩德!非常真實,我會刪除它。 –
'!==='應該是'!==':'SyntaxError:意外的標記='。 **但是**如果你的value沒有被聲明,那麼你仍然會得到一個錯誤...只是做了value = typeof(value)!==「number」? 1:value'應該沒問題(因爲'undefined'也不是數字)。 –
你能指定「不行」嗎?當你運行代碼時會發生什麼,這與你期望的有什麼不同?你有任何錯誤信息? – Guffa
對於未來,如果您提供的問題比「不起作用」更好,您通常會得到更好的建議。 – hobbs