Историята на формирането на съвременния синтаксис на език за програмиране е сходна с разбирането на процесите на формиране на Вселената. Какво и как беше в началото ... Но сега всичко е просто и достъпно.
Алгоритъм в края - винагипоследователна верига от команди. Паралелизмът в програмирането е комбинация от някак си комбинирани последователности. Цикъл алгоритъм никога не е бил по-практичен от последователна или паралелна верига от команди. Етикети, преходи и условия - достатъчно за всяко решение. Функционалните езици са лишили тези идеи от значение, но остава необходимостта от повтаряне на части от кода.
В JavaScript оставаха цикли, макар и функционалниидеите придобиха специално значение. Може би е останало нещо от Лисп и Пролог, но най-вероятно областта, в която пребивава JavaScript, е довела до това, което е, но е съмнително дали това е последното решение.
JavaScript работи в браузър, койтополучава страницата, анализира я в DOM и изпълнява първия скрипт. Всички останали страници, включително заредените на тази страница, са дело на разработчика, който манипулира езика, чрез който може да се извика кодът на сървъра и резултатът, получен чрез механизма AJAX.
Браузърът изпълнява JavaScript код, който можеизползвайте обекти на браузъра, включително този, който осигурява трансфер на информация към сървъра и получаване на отговор, който може да бъде или HTML маркиране, стилове и действителния код. Отговорът може да бъде представен от масиви и обекти. Значението на използването на цикли в JavaScript е изгубено, има много възможности да се направи без тях и рискуването да окачите браузъра с безкрайна последователност от команди не е най-доброто решение.
Самите цикли присъстват в повечето синтаксисни конструкции на JavaScript; разработчикът може да добавя стандартни конструкции със собствени функции.
Съвременният програмист дори не мисли товацикълът, който той използва (за, докато, докато прави, докато ...) в крайна сметка е серия от процесорни цикли (цикли), проста последователност от бинарни операции, прекъснати от насрещни проверки, тоест условия.
Като такъв няма цикъл на ниво машинен език:Има комбинация от обикновени команди, условни операции и преходи. На по-високо ниво, какъвто и инструмент да се използва за разработване на браузър и JavaScript интерпретатор, циклите ще бъдат недвусмислени. Освен това „парчета код“ ще бъдат представени от различни времена и различни поколения програмисти. Етаж отгоре е сградата на JavaScript. Синтаксисът на който предлага модерни JavaScript контури.
JS е прекрасен език:практичен, модерен и напълно функционален. Синтаксисът на този инструмент включва всички дизайни, които са преминали теста на времето и се превръщат в непоклатима основа на всеки алгоритъм. Но наистина ли са необходими цикли? Напредъкът в програмирането често си задаваше основни въпроси, но само в някои случаи намери решение.
Един цикъл може да бъде само две възможности:по условие или чрез брояч, но по същество (на най-ниското ниво) всеки цикъл е само от условие. В някои езици има цикъл „за всеки“. В JavaScript цикълите на foreach са представени от опора в конструкцията на обекта, но можете да използвате опцията array.forEach (...).
В любом случае вариантов два:машинен код, който в крайна сметка изпълнява всички алгоритми на програмист, дори пише на интерпретиращи езици, няма други възможности за повтаряне на верига от команди: той може да изпълни нещо отново, докато:
JavaScript е типичен преводач.Нейната особеност: работи вътре в браузъра, използва обектите си и ви позволява да изпълнявате алгоритми от страна на клиента, както при зареждане на страница в браузъра, така и в процеса на нейната работа.
В JavaScript циклите foreach изглеждат като прилагане на функция към масив:
Използването на такива цикли не създава трудности. Формално няма такъв цикъл. Има последователно извикване на функция за елементи от масив.
За контури погледнете по-познато в JavaScript:
Тук броячът е променлива, стойносттакоето варира според формулата и знакът на края на цикъла е условието. Не е необходимо формулата и състоянието да включват циклична променлива. Но контролът в края на цикъла се определя изцяло от тяхното съдържание.
Опцията while JavaScript предлага вв зависимост от това кога трябва да проверите състоянието. Ако тялото на цикъла не може да бъде изпълнено нито веднъж, това е едно нещо, ако тялото трябва да бъде изпълнено поне веднъж, това е различно:
В първия случай, тълкувайки конструкцията while,JavaScript първо проверява състоянието и ако е вярно, се привлича. Във втория случай цикълът ще бъде изпълнен първи. Ако в резултат на промяна на променливите, посочени в условието на конструкцията направи докато, ще бъде невярно и цикълът ще спре да се изпълнява.
Основната задача (компонент) на всекиалгоритъм - да се намери, едва след това да се вземе решение какво да се прави по-нататък. Най-примитивната опция за търсене е достъп до променлива, резултатът се получава директно. Ако има много променливи или има много стойности (масив), за да изберете стойност, трябва да намерите нещо, което да определи по-нататъшното поведение на скрипта.
Така проста доктрина цикъл с брояч в JavaScript е един видпанацея за всички задачи. Съвременните компютри са бързи. Има достатъчно време за изпълнение на скриптове в браузъра, не се бърза. По-лесно от всякога е да се подреди нещо заради нещо. В резултат на JavaScript за цикли станаха много популярни.
Изглежда, че няма нищо лошо в това. Но зад такъв подход лесно се губи същността, за която е написан този или онзи алгоритъм. Данните никога не са безсмислени. Всичко, за което е написана всяка програма, има смисъл. Пиенето твърде много на ДжavaScript за цикли, разработчикът може да не види желания обект и да не създаде адекватен алгоритъм.
прилагане Примери за цикли на JavaScript от същия тип код може да бъде представен чрез функции - алгоритъмът веднага ще се трансформира, основната част на скрипта ще намалее по размер, всичко ще стане четливо и разбираемо.
Това не е коренно ново решение, но по същество не надхвърля други езикови конструкции. По-специално, JЦикли avaScript могат да бъдат намерени в класическата функция split ():
вар cРезултат = "9,8,7,6,5,4";
вар резултат = cРезултат.разделен(",");
Тук няма цикъл, но как иначе се изпълнява тази функция, ако не чрез търсене на символа "," и използването му за отделяне на едно число от друго.
Абстрахирайки се от това как се прилага вътрешнофункции split (), JavaScript може да бъде допълнен със собствена функционалност, която използва цикли, от гледна точка на използването - по-удобно. Важно е, че този подход води до разработване на функционалност за всяка задача, съответно, но общото все пак ще бъде с този подход.
Тези функции allt (), padc (), padl () и padr () сакоето не е в JavaScript, но понякога трябва да премахнете интервали от низа или да подравните дължината на низа отляво, отдясно или от двете страни. Тялото на тези функции съдържа JavaScript цикли. Просто, достъпно и никога няма да замрази алгоритъма, използвайки това.
Опции за конвертиране на числа отШестнадесетична на 10-та числова система и обратно, по-лесно е да се каже, от един формат на данни в друг, се изпълняват тук с помощта на циклите do while. Много компактен и ефективен синтаксис на езика.
JavaScript не е подходящ за други езици за програмиране и не се различава в различни версии и най-важното е, че се стреми не да променя синтаксиса, а да го развива и разширява.
Мисленето на JS програмист е различно от мисленето на PHP програмист (по-специално и всички други езици в съвкупност, добре, с изключение на това, че "Prolog" и неговите последователи не са включени в масовия поток), когато алгоритъмът не се ограничава до променливи, масиви, оператори за присвояване, контури на цикли.
Ако си представим, че няма цикли и проблемът е решеннеобходимо е, тогава най-простият вариант (със завързани очи) е да се приеме, че програмата обработва данни, които са точка или система от точки в информационно пространство. Какво е точка и какво е система от точки е въпрос на конкретна предметна област. За програмист тази теза означава: има прости данни и има колекция от прости данни. Естествено, обикновена база данни от едно ниво ще бъде система за ниво отдолу и точка за ниво отгоре.
При този подход основната грижа е да се прояви вашата същност чрез вашите методи. Когато дадена точка е в суперсистема, функцията на системата е да прояви своята същност като набор от обекти на точките, включени в нея.
Този подход е толкова стар, колкото и идеята за езицитепрограмиране, но все още не е намерил своето адекватно отражение в програмирането. Много програмисти мислят правилно, но резултатът от тяхното творчество оставя много да се желае.
Добре е понякога да носите превръзка на очите, за да видите света!