1. 程式人生 > >typeof引發的思考

typeof引發的思考

它的 轉換成 重新 src 怎麽 ring 做了 status 可能

今天在群裏看到一位網友提問:
var status=1;

typeof status

結果輸出什麽

我會心一笑 ,這尼瑪這麽簡單,一看就是‘number’,結果網友說不是number,而是string,我心想怎麽可能,結果在瀏覽器測試,打臉了,輸出了string

經過查閱資料,有一位博主遇到過類似的問題,有一句重點,‘status是window下的一個屬性’。這引起了我的註意,按照常規來說,重新定義一個變量會覆蓋系統變量,但是並沒有被覆蓋掉。我做了一個測試,去修改window下screen屬性,結果screen類型被改掉了。但是這就奇怪了,為什麽status的類型卻改不了,這裏我並沒有查到資料。我的猜測是status這個屬性在瀏覽器中必定是string類型,即使你改變了它的類型,依然你會被轉換成字符串。帶著疑問,我將status分別賦值成array和object。果不其然,分別得到了toString後的結果。

然後,我又思考如果真是這樣,那麽如果這段代碼在node環境下執行,就不應該存在這個問題,因為node是沒有window這個宿主對象的。最後,我在node環境下執行了這段代碼,驗證了我的猜想是對的。

有關測試代碼如下:

技術分享圖片

typeof引發的思考