Babel 編譯出來還是 ES 6?難道只能上 polyfill?

時間 2021-05-12 07:48:02

1樓:李小龍

babel說它可以轉換語法的同時,並沒有對使用的介面做任何限定,細思極恐。

也就是說,你以為是這樣的:

實際卻是這樣的:

未來甚至是這樣的:

2樓:賀師俊

很簡單,因為這樣編譯才能保證正確的語義。

當然如果你對語義正確沒有那麼大的追求,可以用buble之類的東西,但是我建議你不要用,因為buble的坑和需要你了解的細節更多。我個人非常反對buble的設計理念。

至於這樣編譯導致的問題,如需要用polyfill且比較難確定要載入哪些polyfill從而很難控制polyfill的大小——確實不好辦,這是babel目前的問題,且短期看不到很好的官方解決可能。不過官方之所以不解決是因為這些問題不是那麼重要(比如node平台下完全無所謂),解決起來又很難。所以先忍著就好。

長期來說早晚會有解決方案的。

3樓:

確實是這樣的,比如說你使用了for...of做迴圈,那麼它最後編譯完就是呼叫這個物件的Symbol.iterator()方法,如果不載入polyfill的話,那麼在瀏覽器原生不支援es6新物件的環境下,是會有問題的。

其實babel還有個plugin叫transform-runtime,他會把他預先指定的一些原生物件或者原生方法編譯成非非原生的方法,比如你用了Promise。可能編譯出來就是PromiseClass這樣子了。不影響原生,但是也不使用原生,用的是core-js裡面的實現,效能上會有一些問題。

瀏覽器直接支援ES6了,還需要編譯麼?

熊傑 是的。如果你的目標只是es6的話。可是還有es7,es8標準會出來。瀏覽器跟不上的時候,總是babel這類東西新跟上。所以如果你想用的東西被支援得很好那就不必要用預編譯的工具了。 babel不只是轉es6,那只是它的乙個preset,你是想問es6轉換這一步還有沒有必要吧?肯定是沒必要了,但是...

蔚來es6還是理想one還是寶馬還是沃爾沃?

Vicky 這個問題太籠統了 要具體需求結合分析 大概說一下各車型優缺點吧 關注品牌有面子 寶馬 關注環保安全沒氣味 沃爾沃 家裡有充電樁 蔚來 沒有充電枕選理想one 止夜 既然說到智慧型車,寶馬和沃爾沃先不談了。介於題主大四畢業,需要一輛40W以下智慧型的汽車,那我猜測家裡一定有燃油車,所以我比...

買蔚來ES6還是特斯拉model3?

爭氣朋克 蔚來ES8,model3雙車主。1 蔚來 就車輛來說 用料紮實,做工好,開著舒服,空間大,適合家用。續航一般。就售後來說 服務好,不用為車輛的各種問題而操心。2 model3 就車輛來說 科技感爆棚,開著很酷,操控完美,續航完美。空間太小,後排長途基本不能坐人,座椅舒適度差。就售後來說 基...