2016-05-04 13 views
5

Rozumiem, że słowo kluczowe const zostało już wdrożone we wszystkich przeglądarkach z wyjątkiem wersji IE10, ale czy jest to wykonalne? Jeśli ktoś skacze na mojej stronie pod IE10 <, słowo kluczowe "const" zostanie ponownie przypisane do "var"? jeśli nie, cała strona zawodzi? Dokumenty na temat słowa kluczowego const dają przydatny wykres na dole, który mówi mi, że nie tylko IE, ale i wiele przeglądarek mobilnych również tego nie obsługuje. czy powinienem go po prostu zepsuć i użyć var?Więc używam słowa kluczowego Javascript const, co dzieje się w IE?

+0

https://www.microsoft.com/en-gb/developers/articles/5-ways-to-test-your-site-in-old-versionsof-ie/ –

Odpowiedz

4

Weź Babel, ECMAScript 2015 (ES6) do transpilatora ECMAScript 5.

Jeśli piszesz:

const a = 123; 

To Wyjścia:

"use strict"; 

var a = 123; 

Jeśli potencjał złamania kodu na nieobsługiwanych przeglądarek nie wystarczy, myślę, że powinno być.

+0

jaka jest rentowność tego problem został rozwiązany za pomocą es5-shim? – lluisrojass

+0

To nie zadziała, es5-shim jest po prostu sumą wielu polyfills używać es5 w es3, ale nie przenosi kodu, i to jest to, czego potrzebujesz, aby const działa. Albo użyj var, albo przejdź do wersji es6 z Babel –

3

IE11 i wyżej obsługuje const, ale IE10 i poniżej nie.

Jeśli spróbujesz użyć const w dowolnej przeglądarce, która go nie obsługuje, otrzymasz błąd składniowy. Jeśli musisz obsługiwać starsze przeglądarki, nie możesz używać const, chyba że użyjesz transpilatora do skompilowania kodu do ES5. Babel jest dobrym przykładem takiego transpilera.

0

Jeśli chcesz napisać czysty kod ES6 (ES2015) przy użyciu const, możesz użyć kompilatora JS, takiego jak Babel. Na przykład:

const a = 1; 

go skompilować do

"use strict"; 
var a = 1; 

Jeśli chcesz bezbolesny babel wykorzystanie konfiguracji to yeoman babel generator.

+0

, na czym polega naprawienie tego problemu za pomocą es5-shim? – lluisrojass

Powiązane problemy