2013-08-14 2 views
8

В соответствии с этим 'use strict' не поддерживается в IE версии 8/9.Можно ли использовать «использовать строгую» в IE 8/9

Мой вопрос: действительно ли безопасно использовать «использовать строгое» в IE 8/9 или браузерах, которые не совместимы? Будет ли он нарушать мой код?

+0

Осторожно говорит все, подробности в статье: http://msdn.microsoft.com/en-us/library/br230269(v=vs.94).aspx – user3348703

ответ

15

Заявление "use strict"; будет не должно вызывать проблем с IE8/9, поскольку браузеры будут запускать код. (Он был разработан таким образом, чтобы гарантировать, что нет никаких проблем с браузерами, которые не реализуют строгого режима)

Внешний источник: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

Это означает, что вы можете включить строгий режим в ваших скриптах - сегодня - и он будет иметь, в худшем случае, никакого побочного эффекта в старых браузерах.

Примечание: в качестве Джереми указал в комментариях, есть некоторые выражения, которые являются технически обоснованными, но утратит в IE8 (например: var x = {}; x.break = true не будет работать в IE8, даже если он будет работать в IE9).

+4

*** В основном верно. ** * В строгом режиме допускается некоторый синтаксис, который будет выходить за пределы строгого режима. В частности, использование ключевых слов в качестве свойств объекта. 'myObject.break = true' работает в строгом режиме, выходит за его пределы. –

+0

@JeremyJStarcher кажется, что 'var x = {}; x.break = true' работает в IE9 (только что протестировал его в f12). У вас есть доступ к IE9 и вы можете проверить? – SheetJS

+0

Не работает в IE7 (режим Quirks). Используйте инструменты разработчика, чтобы изменить это и повторить попытку. Я хочу сказать, что строгий режим не всегда на 100% совместим с нестрогим режимом. –

3

Да, должно быть хорошо.

use directives предназначены для обратной совместимости. Браузеры, которые их не поддерживают, будут видеть только литерал String, на который больше не ссылаются. Таким образом, они пройдут через него и перейдут.

Хотя вы все равно хотите быть уверенным, что вы проверите свой код как с включенным, так и без него.