`use strict` не переводит функцию в строгий режим?

155
19 августа 2017, 03:36

Если написать use strict в косых апострофах, то функция не переходит в строгий режим. Верно ли это поведение?

function f() { // Нет строгого режима - всё хорошо 
  return 010; 
} 
 
console.log(f());

function f() { // Почему тут нет строгого режима? 
  `use strict`; 
  return 010; 
} 
 
console.log(f());

function f() { // Строгий режим, поэтому ошибка 
  'use strict'; 
  return 010; 
} 
 
console.log(f());

function f() { // Строгий режим, поэтому ошибка 
  "use strict"; 
  return 010; 
} 
 
console.log(f());

Answer 1

В соответствии с текущим стандартом это верно.

Из стандарта Директивы и "use strict"

A Use Strict Directive is an ExpressionStatement in a Directive Prologue whose StringLiteral is either the exact code unit sequences "use strict" or 'use strict'. A Use Strict Directive may not contain an EscapeSequence or LineContinuation.

StringLiteral определена как

StringLiteral::
   " DoubleStringCharactersopt "
   ' SingleStringCharactersopt '

То что в косых апострофах называется Template Literal Lexical Components. К StringLiteral это не относится.

Answer 2

А так в документации написано:

A Use Strict Directive is an ExpressionStatement in a Directive Prologue whose StringLiteral is either the exact character sequences "use strict" or 'use strict'. A Use Strict Directive may not contain an EscapeSequence or LineContinuation.

P.S. Вопрос на инглише https://stackoverflow.com/q/5214391/5441700

READ ALSO
ajax php include не подключает файл?

ajax php include не подключает файл?

Всем добрый день!

236
аудио библиотеки для php

аудио библиотеки для php

Всем привет! Кто может подсказать библиотеку для перевода из mp4 во flac на phpПробовал Sox, но он не поддерживает mp4

154
Убрать блок, и по кнопке показать модальное окно с ним

Убрать блок, и по кнопке показать модальное окно с ним

Помогите, сделать чтобы при загрузке второго блок не было видно - div class="tabs__content active_tab

253
.htaccess 301 Redirect кроме некоторых адресов

.htaccess 301 Redirect кроме некоторых адресов

Всем привет, есть такой код который делает 301 редирект, а также убирает с url адреса папку site

191