JavaScript е прощаващ език. Част от синтаксиса му е по избор и езикът се възстановява от грешки с повече изящество от много други. Но това държане на ръка идва с наказание: може да бъде по-лесно да се въвеждат грешки, а непоследователният код е по-труден за четене.
За щастие, ако искате да упражнявате повече дисциплина, има лесен начин да го направите: строг режим. Строгият режим е начин да поискате от JavaScript да реагира по-решително, когато срещне проблеми във вашия код.
Какво е строг режим?
Няколко езика използват концепцията за строг режим: режим, който оценява и изпълнява кода по-стриктно. Може да сте запознати със строгия doctype на HTML, който отхвърля определени елементи и атрибути.
Perl, друг интерпретиран скриптов език, отдавна има свой собствен строг режим. Този режим забранява определени видове опасно изразяване.
Как да използвам строг режим в JavaScript?
Вътре в скрипт поставете изявление „use strict“ точно в горната част, преди всички други изрази:
// целият този скрипт ще бъде в строг режим
'използвайте строго';
Имайте предвид, че можете да включите коментар преди него, но не и твърдения. Можете да активирате строг режим в 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: Дублиране на име на параметър не е позволено в този контекст
Използвайте строг режим за допълнителна увереност в кода
Добрите практики и средствата за тяхното прилагане вървят ръка за ръка. В някои контексти, като ролята на професионално програмиране, ще искате да упражнявате възможно най-много дисциплина. Дори ако просто работите върху хоби проект с отворен код, поддържащият може да предпочете да използва строг режим като стандарт.
В крайна сметка зависи от вас, но е полезно да знаете, че е налична ръка за помощ. Като програмист винаги трябва да търсите най-добрите практики и какво можете да направите, за да ги приложите.
Вашият код трябва да е ясен и лесен за поддръжка. Ето няколко други принципа за програмиране, които да ви помогнат да изчистите постъпката си.
Прочетете Следващото
- Програмиране
- JavaScript
- Уеб разработка
- Програмни езици
Боби е технологичен ентусиаст, който е работил като разработчик на софтуер през повечето от две десетилетия. Той е запален по игрите, работи като главен редактор в Switch Player Magazine и е потопен във всички аспекти на онлайн публикуването и уеб разработката.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!
Щракнете тук, за да се абонирате