Вопрос по javascript – Является ли «использовать строгое» безопасным для живых сайтов?

16

& quot; использовать строгий & quot ;; кажется потрясающим, и мы действительно хотели бы использовать его в нашем магазине. Однако мы просто хотим, чтобы мы (разработчики) могли найти проблемы со строгостью; мы очень не хотим, чтобы наш сайт ломался для наших реальных клиентов, когда он работал нормально раньше.

Теперь мы могли бы просто использовать некоторую серверную логику для достижения этой цели:

{% if debug %}<script>"use strict";</script>{% endif %}

... за исключением того, что & quot; использовать строгий & quot; работает на файловой основе, так что на самом деле это не сработает (ну, если только мы не начнем обрабатывать все наши файлы JS на стороне сервера).

Итак, мой вопрос:do all the things "use strict" checks for get checked when the page loads, or is it possible for "use strict" to find errors after the page has loaded?  Если это первое, мы можем просто использовать & quot; использовать строгий & quot; и перестанем беспокоиться, потому что мы загружаем наш сайт в процессе разработки, прежде чем загружать его в прямом эфире. Однако, если это последнее, нам, кажется, не повезло, так как мы не можем протестировать все возможные условия выполнения (и опять же, мы не хотим делать ошибки для наших пользователей, когда раньше не было ошибок).

Error: User Rate Limit Exceeded jfriend00

Ваш Ответ

2   ответа
13

strict mode

function foo() {
    "use strict";
    bar = true;
}

foo();

"ReferenceError: assignment to undeclared variable bar"

goodbarstrict modewant

Error: User Rate Limit ExceededgoodError: User Rate Limit Exceeded machineghost
Error: User Rate Limit Exceeded
6

'use strict';

setTimeout(function() {
    undefined = 42; // Causes a TypeError
}, 1000);

// Click here for a demo.

'use strict'

'use strict'

Похожие вопросы