2016-03-23 44 views
0

看起來在下面的代碼中存在錯誤。找不到代碼的錯誤。 程序的其餘部分將變量returnValueFinal類型的值評估爲null。我希望while循環提示用戶輸入一個數字,而while循環有望作爲一個哨兵控制循環工作。 尚未按預期工作。 這裏是我的代碼,JavaScript while(sentinel controlled loop)error

while(typeof(returnValueFinal) === null) 
       { 
        prompt("Please enter a number"); 
        console.log("null value"); 
       } 

有人能找到錯誤嗎?在此先感謝

+1

'typeof運算(空)=== object''你想'returnValueFinal == (還會捕獲未定義的) – Wainage

+0

如果您不檢查null字符串,它在某些瀏覽器中將是錯誤的,在其他情況下,它將不會運行,因爲瀏覽器會看到它永遠不會退出循環你不會以任何方式更新'returnValueFinal'的值,因爲它看到它已經改變了它的類型。除非你有其他代碼,你沒有告訴我們,那麼,在這種情況下,忽略這一點,這只是我最初的想法,沒有更多的代碼/信息,我不能更準確地評論。瀏覽器到瀏覽器它會改變,但這是最不可能發生的兩個最可能的原因。 – SkullDev

+0

有趣。哪些瀏覽器? – Wainage

回答

0

typeof返回一個字符串

所以typeof(returnValueFinal) === null返回false,實際上如果 returnValueFinal爲null使用returnValueFinal === null

+0

但是'typeof({})==='object'' – Wainage

+0

不確定你在@Wainage得到的是什麼,因爲'{*'*是一個對象,所以它將評估爲'true', –

+0

I'我說'空'並不是唯一能夠使這個條件成立的事情。如果returnValueFinal = {}它會(按他的代碼)宣佈「null」 – Wainage