Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Строгий режим, "use strict"

Лекция



Привет, сегодня поговорим про строгий режим "use strict", обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое строгий режим "use strict" , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend).


  1. "use strict"
  2. На уровне функции
  3. Использовать ли use strict?

Современная спецификация языка содержит ряд несовместимых изменений, по сравнению со старым стандартом.

Чтобы не ломать существующий код, они, в основном, включаются при наличии специальной директивы use strict. Эта директива не поддерживается IE9-.

"use strict"

Директива выглядит как строка "use strict"; или 'use strict';, и может стоять в начале скрипта, либо в начале функции, например:

 

1 "use strict";
2  
3 // этот код будет работать по стандарту ES5
4 ...

 

Например, присвоение переменной без объявления в старом стандарте было допустимо, а в современном — нет.

Поэтому следующий код выдаст ошибку:

 

   
1 "use strict";
2  
3 x = 5; // error: x is not defined

 

Директиву нужно указывать до кода, иначе она не сработает:

 

   
1 var a;
2  
3 "use strict";
4  
5 x = 5; // ошибки не будет, строгий режим не включен

 

На уровне функции

Допустим, код работает только в старом режиме, но мы хотим написать новые функции, используя современный стандарт.

Директиву "use strict"; можно указать в начале функции, тогда она будет действовать только в ней.

Например, в коде ниже используются переменные без объявления. Об этом говорит сайт https://intellect.icu . Но ошибка будет выведена только при запуске функции, так как именно она работает в строгом режиме:

   
01 function sayHi(person) {
02   "use strict";
03  
04   message = "Привет, " + person; // error: message is not defined
05   //...
06 }
07  
08 person = "Вася";
09  
10 sayHi(person);

 

Отменить действие "use strict" никак нельзя.

Если директива указана на уровне скрипта, то действует и на все функции.

Использовать ли use strict?

Строгий режим дает две вещи:

  1. Там, где в старом стандарте был «кривой код», в новом будет ошибка.
  2. Некоторые возможности языка работают по-другому. Более корректно, но по-другому. По ходу учебника мы увидим много конкретных примеров этих различий.

Все это хорошо.

Но основная проблема при использовании этой директивы — поддержка браузеров IE9-, которые игнорируют use strict и работают только в старом стандарте.

Действительно, предположим, что мы, используя эту директиву, разработали код в Chrome. Все работает… Однако, вероятность ошибок при этом в IE9- выросла! Так как там поддерживается только старый стандарт, возможны ошибки совместимости. А отлаживать код, чтобы найти эти ошибки, в IE9- намного менее приятно, чем в Chrome.

Тем не менее, строгий режим — это наше будущее. Поэтому его лучше использовать. Но при этом нужно очень хорошо знать отличия в работе JavaScript между старым и новым режимом, чтобы код, который вы напишете, не «ломался» при запуске в режиме старого стандарта.

К сожалению, в одной статье не просто дать все знания про строгий режим "use strict". Но я - старался. Если ты проявишь интерес к раскрытию подробностей,я обязательно напишу продолжение! Надеюсь, что теперь ты понял что такое строгий режим "use strict" и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)

Из статьи мы узнали кратко, но содержательно про строгий режим "use strict"
создано: 2014-10-07
обновлено: 2021-03-13
132513



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)

Термины: Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)