The Codest
  • Par mums
  • Pakalpojumi
    • Programmatūras izstrāde
      • Frontend izveide
      • Backend izstrāde
    • Staff Augmentation
      • Frontend izstrādātāji
      • Backend izstrādātāji
      • Datu inženieri
      • Mākoņa inženieri
      • QA inženieri
      • Citi
    • Tā Konsultatīvais dienests
      • Audits un konsultācijas
  • Nozares
    • Fintech un banku darbība
    • E-commerce
    • Adtech
    • Healthtech
    • Ražošana
    • Loģistika
    • Automobiļu nozare
    • IOT
  • Vērtība par
    • CEO
    • CTO
    • Piegādes vadītājs
  • Mūsu komanda
  • Case Studies
  • Zināt, kā
    • Blogs
    • Tikšanās
    • Tiešsaistes semināri
    • Resursi
Karjera Sazinieties ar mums
  • Par mums
  • Pakalpojumi
    • Programmatūras izstrāde
      • Frontend izveide
      • Backend izstrāde
    • Staff Augmentation
      • Frontend izstrādātāji
      • Backend izstrādātāji
      • Datu inženieri
      • Mākoņa inženieri
      • QA inženieri
      • Citi
    • Tā Konsultatīvais dienests
      • Audits un konsultācijas
  • Vērtība par
    • CEO
    • CTO
    • Piegādes vadītājs
  • Mūsu komanda
  • Case Studies
  • Zināt, kā
    • Blogs
    • Tikšanās
    • Tiešsaistes semināri
    • Resursi
Karjera Sazinieties ar mums
Atpakaļ bultiņa ATGRIEZTIES ATPAKAĻ
2022-05-25
Programmatūras izstrāde

Funkcionālā programmēšana programmā JavaScript 1. daļa - Ievads

The Codest

Pawel Ged

Vue.js izstrādātājs

Lasiet mūsu rakstu, lai atklātu JavaScript funkcionālās programmēšanas iespējas. Funkcionālā programmēšana tiek klasificēta kā deklaratīvā paradigma, kurā programmas apraksts ir atdalīts no aprēķiniem.

Kas ir funkcionālā programmēšana?

"Vienkāršāk sakot, funkcionālā programmēšana ir programmatūras izstrāde stils, kurā galvenais uzsvars tiek likts uz funkciju izmantošanu."

Fragmenti no grāmatas: Luis Atencio "Funkcionālā programmēšana in JavaScript. Kā uzlabot savu JavaScript programmas, izmantojot funkcionālās metodes"

Funkcionālā programmēšana ir klasificēts kā deklaratīvais paradigma, kurā programmas apraksts ir atdalīts no aprēķiniem. Šeit uzsvars tiek likts uz izteiksmju izmantošanu programmas loģikas aprakstīšanai. Tas ir pretējs imperatīvs programmēšana, kur kods tiek izpildīts soli pa solim un detalizēti norāda datoram, kā izpildīt uzdevumu.

Deklaratīvs pret imperatīvu, piemēri

Apskatiet gadījumu, kad mums ir veselu skaitļu masīvs un mums ir nepieciešams katru no tiem palielināt līdz otrajai pakāpei un pēc tam atlasīt tikai tās vērtības, kas nav pāra.

Imperatīvs

const numuri = [1, 2, 3, 4, 5, 6, 7, 8, 9];

const results = []

for(let i = 0; i < numbers.length; i++) {
const secondPower = Math.pow(numbers[i], 2)
if(secondPower & 1) { // vai % 2, bet operācijas ar bitiem ir ātrākas
results.push(secondPower);
}
}

console.log(results) // [1, 9, 25, 49, 81]

Attiecībā uz imperatīvs risinājums, ir skaidri redzams, ka galvenā uzmanība tiek pievērsta īstenošanas detaļām. Cilpā var redzēt masīva indeksu, kas balstīts uz vajadzību kontrolēt elementu skaitu. Sakarā ar lielo detaļu skaitu kodā ir grūtāk koncentrēties uz to, ko tas dara. Ļaujiet mums tagad koncentrēties uz deklaratīvais risinājums.

Deklaratīvais

const risesToSecondPower = (num) => Math.pow(num, 2)
const isOdd = (num) => num & 1;

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

const results = numbers
.map(risesToSecondPower)
.filter(isOdd);

console.log(results) // [1, 9, 25, 49, 81]

Šajā risinājumā īstenošana ir atdalīta no izsaukuma, pārnesot loģiku uz atsevišķām funkcijām. Pateicoties šim risinājumam, mēs varam koncentrēties tikai uz funkciju nosaukumiem, kas apraksta tajās notiekošo. Turklāt ir paaugstināts abstrakcijas līmenis, un loģiku tagad var izmantot atkārtoti. Tagad pievērsīsimies izsaukumam. Tajā nav redzamas nekādas detaļas, tikai apraksts, kas soli pa solim stāsta, ko šis kods dara:

  1. karte(risesToSecondPower) - ņem katru masīva elementu un palielina to līdz otrajam lielumam,
  2. filtrs(isOdd) - filtru un atlasiet nepāra elementus.

Ieguvumi

Funkcionālā programmēšana ir daudz priekšrocību. Kad runa ir par JavaScript, funkciju izmantošana ir dabiska, jo tā ir funkcionālā valoda. Pat klases šajā valodā ir "sintaktiskais cukurs", un tās pamatā sastāv no funkcijām.

Runājot par lasāmību, imperatīvās pieejas gadījumā kods parasti kļūst par sarakstu ar funkciju nosaukumiem, ko var lasīt secīgi, neiedziļinoties to loģikā. Rezultātā mēs nepievēršam uzmanību implementācijas detaļām.

Vēl viena priekšrocība ir nemainīgu objektu konvencijas ievērošana. Pateicoties šai pieejai, kods kļūst drošāks, jo atsauces JavaScript ir ļoti spēcīgi, un nevēlamo objektu ir viegli pārveidot.

Funkcionālajā programmēšanā kods tiek sadalīts mazās funkcijās, kuras var viegli uzskatīt par atkārtoti lietojamu abstraktu kodu.

Tīrā funkcija

Viens no svarīgākajiem funkcionālās programmēšanas aspektiem ir tīrās funkcijas. Lai izveidotu šādu funkciju, jāatceras daži noteikumi:

  • funkcijas atdotais rezultāts ir atkarīgs tikai no ievades parametriem,
  • neizmantojiet globālos mainīgos un mainīgos, kas ir ārpus jūsu darbības jomas,
  • nemaina parametru stāvokli,
  • tīrām funkcijām nav "blakusparādību" (parasti tās maina objekta īpašības),
  • norādītajiem ievades parametriem, tie vienmēr atgriezīs vienu un to pašu rezultātu,
  • tīra funkcija vienmēr pieņem parametru un vienmēr atgriež parametru.
// Inpure funkcija
let counter = 5
...
const multipleCounter = (reizinātājs) => {
counter = counter * reizinātājs
}

multiplyCounter(2) // -> ? rezultāts atkarīgs no sākotnējās vērtības
// Tīra funkcija
const multiplyBy = (reizinātājs) => (vērtība) => vērtība * reizinātājs
const multipleByTwo = multiplyBy(2)

const counter = multiplyByTwo(5) // -> 10

Pirmā funkcija ir neparedzama, jo tā ir atkarīga no ārēja parametra, kas var mainīties. Otrā funkcija ir caurskatāma, tā ir atkarīga tikai no ieejas parametriem, nemaina tos un neizmanto mainīgos, kas ir ārpus diapazona. Tā ir caurspīdīga, jo ir atkarīga no parametriem, nemaina tos, neizmanto mainīgos ārpus diapazona un atgriež jaunu vērtību.

sadarbības baneris

Saistītie raksti

Programmatūras izstrāde

Javascript rīki darbībā

Atklājiet dažus JavaScript izgūšanas rīkus, lai uzlabotu savu programmēšanas spēli. Uzziniet vairāk par ESLint, Prettier un Husky!

The Codest
Reda Salmi React Izstrādātājs

Abonējiet mūsu zināšanu bāzi un saņemiet jaunāko informāciju par IT nozares pieredzi.

    Par mums

    The Codest - starptautisks programmatūras izstrādes uzņēmums ar tehnoloģiju centriem Polijā.

    Apvienotā Karaliste - Galvenā mītne

    • 303B birojs, 182-184 High Street North E6 2JA
      Londona, Anglija

    Polija - Vietējie tehnoloģiju centri

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polija

      The Codest

    • Sākums
    • Par mums
    • Pakalpojumi
    • Case Studies
    • Zināt, kā
    • Karjera
    • Vārdnīca

      Pakalpojumi

    • Tā Konsultatīvais dienests
    • Programmatūras izstrāde
    • Backend izstrāde
    • Frontend izveide
    • Staff Augmentation
    • Backend izstrādātāji
    • Mākoņa inženieri
    • Datu inženieri
    • Citi
    • QA inženieri

      Resursi

    • Fakti un mīti par sadarbību ar ārējo programmatūras izstrādes partneri
    • No ASV uz Eiropu: Kāpēc Amerikas jaunuzņēmumi nolemj pārcelties uz Eiropu?
    • Tehnoloģiju ārzonas attīstības centru salīdzinājums: Tech Offshore Eiropa (Polija), ASEAN (Filipīnas), Eirāzija (Turcija)
    • Kādi ir galvenie CTO un CIO izaicinājumi?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Autortiesības © 2026 The Codest. Visas tiesības aizsargātas.

    lvLatvian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lt_LTLithuanian lvLatvian