在學習JavaScript的過程中,我瞭解到Let
和const
是爲了解決Var
關於全局範圍和提升的問題,並且在重新聲明時不會給出錯誤。有沒有理由不放棄「var」?
現在我可以在不使用var
的情況下完全編寫代碼嗎?或者我現在應該知道他們,等到他們變得廣泛「可以接受」?
換句話說,如果我只使用let
和const
,那麼暫時我應該擔心兼容性問題?
在學習JavaScript的過程中,我瞭解到Let
和const
是爲了解決Var
關於全局範圍和提升的問題,並且在重新聲明時不會給出錯誤。有沒有理由不放棄「var」?
現在我可以在不使用var
的情況下完全編寫代碼嗎?或者我現在應該知道他們,等到他們變得廣泛「可以接受」?
換句話說,如果我只使用let
和const
,那麼暫時我應該擔心兼容性問題?
要直接回答問題 - 不,您不能,因爲兼容性問題,因爲@suraj提醒我們。
話雖如此,在現代JS開發你是越來越不可能使用var
爲let
和const
從var
一些具體用途有明顯的優勢,除了和將使用兩種BabelJS,打字稿甚至現在Webpack 2將代碼向後兼容,因爲生產代碼將在vanilla JS中發貨。像WebStorm這樣的現代IDE默認在ES6模式下將你的var
更改爲let
。
從這個問題來看,你還在研究JS,你已經提出了正確的問題,所以我建議今天使用let
和const
來利用ES6的優點,但這會增加複雜性與轉運人打交道。但如果你對此感到滿意 - 這就是要走的路。
轉譯器的想法聽起來有趣的嘗試! –
'var'仍然有它的目的:http://stackoverflow.com/questions/762011/whats-the-difference-between-using-let-and-var-to-declare-a-variable。 –
您應該擔心與[let](http://caniuse.com/#search=let)和[const](http://caniuse.com/#search=const)的兼容性問題,因爲兩者似乎都不在IE10及其以下版本和其他各種瀏覽器中支持。 – George
@喬治transpilers存在你知道。兼容性幾乎總是一個紅鯡魚。 –