Влияет ли строгий режим в одной функции на функцию, которую он вызывает?

Например, у меня есть такой код:

function test() {
  // some code
}

function main() {
  "use strict";
  test();
}

Как видите, в функции main я включил строгий режим.

Вопрос: включает ли это строгий режим в функции test или мне нужно определить строгий режим для каждой функции отдельно?

Спасибо.


person Roman Nazarkin    schedule 27.06.2015    source источник
comment
Вы также можете проверить этот ответ, в нем есть несколько примеров, объясняющих это.   -  person thefourtheye    schedule 27.06.2015


Ответы (2)


Нет, это не так. Строгий режим ограничен. Таким образом, только код в вашем main находится в строгом режиме.

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

person T.J. Crowder    schedule 27.06.2015

Нет, так как javascript имеет область действия на уровне функции, сейчас strict ограничен только основной функцией. Если вы хотите, чтобы его область действия была ограничена другими функциями, вы можете либо указать "use strict" глобально, либо указать его для необходимых функций по отдельности.

Примечание: глобальное указание повлияет на все функции.

person Sanket Jadhav    schedule 27.06.2015