ЈаваСцрипт је језик који опрашта. Неке од његове синтаксе су опционе, а језик се опоравља од грешака са више милости од многих других. Али ово држање за руку долази са казном: може бити лакше увести грешке, а недоследан код је теже читати.
На срећу, ако желите да вежбате више дисциплине, постоји једноставан начин да то урадите: строги режим. Строги режим је начин да се од ЈаваСцрипта тражи да одлучније реагује када наиђе на проблеме у вашем коду.
Шта је строги режим?
Неколико језика користи концепт строгог режима: режим који ригорозније процењује и покреће код. Можда сте упознати са ХТМЛ строгим типом документа, који забрањује одређене елементе и атрибуте.
Перл, још један интерпретирани скриптни језик, дуго је имао свој строги режим. Овај режим забрањује одређене врсте небезбедног изражавања.
Како да користим строги режим у ЈаваСцрипт-у?
Унутар скрипте, ставите изјаву „користи строго“ на врху, пре било које друге изјаве:
// цела ова скрипта ће бити у строгом режиму
'користи строго';
Имајте на уму да пре њега можете укључити коментар, али не и изјаве. Можете омогућити строги режим у ЈаваСцрипт датотеци или на почетку блока скрипте у ХТМЛ датотеци. Такође можете да омогућите строги режим на основу функције по функцији:
функција стрицт() {
// Синтакса строгог режима на нивоу функције
'користи строго';
ретурн "Ова функција је строга";
}
фунцтион лоосе() {
ретурн "Ова функција НИЈЕ стриктна";
}
Када омогућите строги режим, обавезно тестирајте свој код. Ако радите са вебом, отворите а ЈаваСцрипт конзола, тако да можете идентификовати све нове грешке.
Шта ради ЈаваСцриптов строги режим?
Укратко, строги режим ће мање опраштати одређене типове проблематичног кода. Уместо да игноришу проблеме и настављају извршавање, одређене грешке ће зауставити скрипту. Ово је често сигурније него наставити у непожељним околностима.
Спречава случајне глобалне појаве
Најбољи пример од којег строги режим штити је стварање случајних глобалних променљивих. У нормалном извршавању, овај код:
миВар = 17;
Креираће својство под називом миВар на глобалном објекту, под претпоставком да нисте претходно декларирали миВар. У веб претраживачу, глобални објекат је обично прозор:
цонсоле.лог (виндов.миВар);
>> 17
Међутим, ако укључите изјаву „користи строго“, видећете грешку у конзоли, нешто попут:
Унцаугхт РеференцеЕррор: миВар није дефинисан
Разлог зашто је ово толико корисно је тај што открива уобичајени случај грешке у куцању. Лако је погрешно откуцати име променљиве, а многи језици би нас приметили на такву грешку.
Али ЈаваСцрипт, подразумевано, једноставно преузима опсег глобалног објекта и наставља као да ништа није у реду. Неки код може намерно да зависи од тог понашања, што је нешто чега бисте требали бити свесни када одлучујете да користите строги режим.
Такође видети: Како да ваш код буде чист помоћу инкапсулације објеката
Неуспех чини експлицитним
Неко понашање у ЈаваСцрипт-у не успева, али то ради тихо. Можда нећете знати за такве грешке осим ако их посебно не проверавате. На пример, НаН је посебно својство глобалног објекта који представља неважећи број. Ово својство је само за читање, али и даље можете покушати да пишете у њега:
НаН = 2;
>> 2
Али иако изгледа као да је тај задатак успео, није:
НаН
>> НаН
У строгом режиму, добићете стварну грешку која вам говори да не можете да доделите НаН. Овај код користи функцију тако да можете демонстрирати строги режим у конзоли:
јавасцрипт
фунцтион бадНаН() { "користи строго"; прозор. НаН = 2; }
>> недефинисано
бадНан()
>> Унцаугхт ТипеЕррор: Није могуће доделити својству само за читање 'НаН' објекта '#'
у бадНаН (:1:46)
у :1:1
Ово је класичан пример који показује, иако незнање може бити блаженство, понекад је боље знати да ли нешто пође наопако.
Упозорава о дуплираним параметрима
Последњи пример се бави мало познатом карактеристиком ЈаваСцрипт-а. Можда ће вас изненадити када сазнате да имена параметара не морају бити јединствена:
фунцтион дупеПарам (а, а, ц) { цонсоле.лог (а); }
>> недефинисано
дупеПарам (2, 4, 8)
>> 4
Имајте на уму да ЈаваСцрипт додељује најновију вредност дупликату параметра. Сада, ово понашање није посебно корисно. У ствари, било би корисније да нам ЈаваСцрипт каже да је то грешка, а то је управо оно што строги режим ради:
фунцтион дупеПарам (а, а, ц) { "користи строго"; }
<< Унцаугхт СинтакЕррор: Дупликат назива параметра није дозвољен у овом контексту
Користите строги режим за додатно самопоуздање кода
Добре праксе и средства за њихово спровођење иду руку под руку. У неким контекстима, као што је улога професионалног програмирања, пожелећете да будете дисциплиновани што је више могуће. Чак и ако само радите на хоби пројекту отвореног кода, одржавалац ће можда више волети да користи строги режим као стандард.
На крају крајева, на вама је, али је корисно знати да је рука помоћи доступна. Као програмер, увек треба да тражите најбоље праксе и шта можете да урадите да их примените.
Ваш код треба да буде јасан и лак за одржавање. Ево неколико других принципа програмирања који ће вам помоћи да очистите свој чин.
Реад Нект
- Програмирање
- ЈаваСцрипт
- Веб Девелопмент
- Програмски језици
Боби је технолошки ентузијаста који је већину две деценије радио као програмер софтвера. Он је страствен за игре, ради као главни уредник у Свитцх Плаиер Магазину и уроњен је у све аспекте онлајн издаваштва и веб развоја.
Претплатите се на наш билтен
Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!
Кликните овде да бисте се претплатили