2013-08-14 23 views

Odpowiedz

15

Oświadczenie "use strict"; będzie nie powinno powodować problemów z IE8/9, o ile przeglądarki uruchomią kod. (Został on zaprojektowany w taki sposób, aby zapewnić, że nie ma problemów z przeglądarek, które nie implementują tryb ścisły)

zewnętrzne źródło: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

Oznacza to, że można włączyć tryb ścisły na w skryptach - dzisiaj - i w najgorszym przypadku nie będzie miał skutków ubocznych w starych przeglądarkach.

UWAGA: jako Jeremy zauważył w komentarzach, istnieją pewne wyrażenia, które są technicznie poprawny, ale nie w IE8 (na przykład: var x = {}; x.break = true nie będzie działać w IE8 choć będzie działać w IE9).

+4

*** W większości prawdziwe. ** * Istnieje pewna składnia dozwolona w trybie ścisłym, która zakończy się niepowodzeniem poza trybem ścisłym. W szczególności użycie słów kluczowych jako właściwości obiektu. 'myObject.break = true' działa w trybie ścisłym, kończy się niepowodzeniem poza nim. –

+0

@JeremyJStarcher wydaje się, że 'var x = {}; x.break = true' działa w IE9 (właśnie przetestowałem to w f12). Czy masz dostęp do IE9 i czy możesz go zweryfikować? – SheetJS

+0

Fails w IE7 (tryb Quirks) - Użyj narzędzi programistycznych, aby to zmienić i spróbuj ponownie. Chodzi mi o to, że tryb ścisły nie zawsze jest w 100% kompatybilny z trybem nie ścisłym. –

3

Tak, powinno być dobrze.

use directives mają być kompatybilne wstecznie. Przeglądarki, które ich nie obsługują, po prostu zobaczą literał, który nie jest dalej przywoływany. Przekażą to i ruszą dalej.

Mimo to nadal chcesz mieć pewność, że testujesz kod z włączoną obsługą i bez niej.