JavaScript е прощаващ език. Част от синтаксиса му е по избор и езикът се възстановява от грешки с повече изящество от много други. Но това държане на ръка идва с наказание: може да бъде по-лесно да се въвеждат грешки, а непоследователният код е по-труден за четене.

За щастие, ако искате да упражнявате повече дисциплина, има лесен начин да го направите: строг режим. Строгият режим е начин да поискате от JavaScript да реагира по-решително, когато срещне проблеми във вашия код.

Какво е строг режим?

Няколко езика използват концепцията за строг режим: режим, който оценява и изпълнява кода по-стриктно. Може да сте запознати със строгия doctype на HTML, който отхвърля определени елементи и атрибути.

Perl, друг интерпретиран скриптов език, отдавна има свой собствен строг режим. Този режим забранява определени видове опасно изразяване.

Как да използвам строг режим в JavaScript?

Вътре в скрипт поставете изявление „use strict“ точно в горната част, преди всички други изрази:

// целият този скрипт ще бъде в строг режим
'използвайте строго';
instagram viewer

Имайте предвид, че можете да включите коментар преди него, но не и твърдения. Можете да активирате строг режим в JavaScript файл или в началото на скриптов блок в HTML файл. Можете също да активирате строг режим на база функция по функция:

функция strict() {
// Синтаксис на строг режим на ниво функция
'използвайте строго';
return "Тази функция е строга";
}
функция loose() {
return "Тази функция НЕ е строга";
}

След като активирате строг режим, не забравяйте да тествате кода си. Ако работите с мрежата, отворете a JavaScript конзола, за да можете да идентифицирате всички нови грешки.

Какво прави стриктният режим на JavaScript?

Накратко, стриктният режим ще бъде по-малко прощаващ за определени типове проблематичен код. Вместо да игнорират проблемите и да продължават изпълнението, някои грешки ще спрат скрипта. Това често е по-безопасно от продължаването при нежелани обстоятелства.

Предотвратява случайни глобални промени

Най-добрият пример, от който стриктният режим защитава, е създаването на случайни глобални променливи. При нормално изпълнение този код:

myVar = 17;

Той ще създаде свойство с име myVar върху глобалния обект, ако приемем, че преди това не сте декларирали myVar. В уеб браузър глобалният обект обикновено е прозорец:

console.log (window.myVar);
>> 17

Ако включите израз „използвайте стриктно“ обаче, ще видите грешка в конзолата, нещо като:

Uncaught ReferenceError: myVar не е дефиниран

Причината това да е толкова полезно е, че улавя често срещан случай на печатна грешка. Лесно е да въведете погрешно име на променлива и много езици биха ни открили такава грешка.

Но JavaScript по подразбиране просто приема обхвата на глобалния обект и продължава, сякаш нищо не е наред. Някои код може умишлено да зависи от това поведение, което е нещо, което трябва да сте наясно, когато решавате да използвате строг режим.

Вижте също: Как да запазите кода си чист с капсулиране на обекти

Прави неуспеха изрично

Някакво поведение в JavaScript се проваля, но го прави безшумно. Може да не знаете за такива грешки, освен ако не проверявате специално за тях. Например, NaN е специално свойство на глобалния обект, което представлява невалидно число. Това свойство е само за четене, но все пак можете да опитате да пишете в него:

NaN = 2;
>> 2

Но въпреки че изглежда, че тази задача е успешна, тя не:

NaN
>> NaN

В строг режим ще получите действителна грешка, която ви казва, че не можете да присвоите NaN. Този код използва функция, за да можете да демонстрирате строг режим в конзолата:

javascript
function badNaN() { "използвайте строго"; прозорец. NaN = 2; }
>> неопределено
badNan()
>> Uncaught TypeError: Не може да се присвои за четене само свойство 'NaN' на обект '#'
при badNaN (:1:46)
при :1:1

Това е класически пример, който показва, че макар невежеството да е блаженство, понякога е по-добре да разберете дали нещо се обърка.

Предупреждава за дублиращи се параметри

Последният пример се занимава с малко позната функция на JavaScript. Може да ви изненада да научите, че имената на параметрите не трябва да са уникални:

функция dupeParam (a, a, c) { console.log (a); }
>> неопределено
dupeParam (2, 4, 8)
>> 4

Имайте предвид, че JavaScript присвоява най-новата стойност на дублиран параметър. Сега това поведение не е особено полезно. Всъщност би било по-полезно JavaScript да ни каже, че е грешка и точно това прави стриктният режим:

функция dupeParam (a, a, c) { "използвайте строго"; }
<< Uncaught SyntaxError: Дублиране на име на параметър не е позволено в този контекст

Използвайте строг режим за допълнителна увереност в кода

Добрите практики и средствата за тяхното прилагане вървят ръка за ръка. В някои контексти, като ролята на професионално програмиране, ще искате да упражнявате възможно най-много дисциплина. Дори ако просто работите върху хоби проект с отворен код, поддържащият може да предпочете да използва строг режим като стандарт.

В крайна сметка зависи от вас, но е полезно да знаете, че е налична ръка за помощ. Като програмист винаги трябва да търсите най-добрите практики и какво можете да направите, за да ги приложите.

10 основни принципа за програмиране, които всеки програмист трябва да знае

Вашият код трябва да е ясен и лесен за поддръжка. Ето няколко други принципа за програмиране, които да ви помогнат да изчистите постъпката си.

Прочетете Следващото

ДялTweetелектронна поща
Свързани теми
  • Програмиране
  • JavaScript
  • Уеб разработка
  • Програмни езици
За автора
Боби Джак (публикувани 62 статии)

Боби е технологичен ентусиаст, който е работил като разработчик на софтуер през повечето от две десетилетия. Той е запален по игрите, работи като главен редактор в Switch Player Magazine и е потопен във всички аспекти на онлайн публикуването и уеб разработката.

Още от Боби Джак

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате