Увод у Спреад синтаксу у ЈаваСцрипт-у

Шта је то и зашто нам је потребно?

Синтакса ширења уведена је у ЕС6 спецификацију ЈаваСцрипт-а. Од тада се показао као вредан део кода што чини код чистим и лаким за разумевање.

МДН дефинише ... као:

Синтакса ширења омогућава проширивање итера, попут израза низа или низа, на местима где се очекује нула или више аргумената (за позиве функција) или елемената (за литерал низа) или проширивање израза објекта на местима где је нула или више очекују се парови кључ / вредност (за објектне литерале).

Сложимо се сви да је горња дефиниција прегршт и нико од нас није ухватио реч коју покушава да изговори. Почнимо са најосновнијим стварима о синтакси ширења.

  • Оператор ширења је само 3 тачке ...
  • Може се користити на итерабилима попут низа или низа.
  • Проширује итерабле на своје појединачне елементе
  • Може пружити позив функције с низом (или било којим другим итерабилним) где се очекивало 0 или више аргумената.

Пример

Исечак у наставку садржи функцију звану сум која очекује 3 аргумента к, и и з. Имамо низ са 3 елемента и желимо да проследимо елементе у низу као аргументе за функцију.

Пре увођења оператора ширења, то је учињено помоћу функције аппли.

Након увођења оператора ширења, то би се могло учинити врло једноставно:

Као што се може видети из горњег исечка са оператором ширења, не морамо да користимо функцију аппли. Ово нас штеди од писања више кода.

Горњи пример даје врло грубу и кратку идеју о оператору ширења. Прво, уђимо у више детаља у вези са истим, а затим ћемо видети још примера.

Синтакса

Оператор ширења може се користити на много начина и сценарија као што су

  • Унутар позива функције

Када се користи у горњем сценарију , назива се параметар остатак. Примере повезане с тим видећемо у одељку са примерима.

  • Креирање / проширивање низа / итерабле:

Примери

  • Као одмор

... користи се као аргумент за варијадну функцију. Варијадична функција је функција која може имати променљив број параметара.

Овде када вратимо аргс, видимо да враћамо свој низ који смо проследили као засебне вредности у позиву. То показује да оператер рест заправо ради тачно супротно синтакси ширења. Један проширује, а један кондензује вредност.

Још једна ствар коју треба истаћи је да не постоји одређени број параметара који се помињу у дефиницији функције. То значи да употреба ... функција може имати н број аргумената. Не морамо претходно навести параметре.

Ово је посебно врло флексибилан начин примања аргумената за функцију за коју одређени број аргумената није одређен као функције Матх.мак и Матх.мин. То су различите функције, јер број улаза за њих може бити бесконачан.

Вратимо се на пример, да бисмо добили збир свих аргумената

Морамо да поновимо низ и додамо све појединачне елементе да бисмо добили резултат.

  • Пусх елементи у низу

функција пусх () користи се за потискивање елемената у низ. Ограничење пусх-а је да морамо гурати елементе један по један (пусх (1,2,3)). Ако постоји низ чији ће елементи бити уметнути у низ помоћу пусх-а, добићемо вишедимензионални низ, који нисмо тражили.

Поново се примените за спасавање

Као што видимо да коришћење аппли-а не изгледа баш елегантно и за то нам је потребна једноставна и мала синтакса. Искористимо намаз ...

Елегантно!

  • Копирање низа

Једноставно!

Исти резултат се може добити помоћу објекта

  • Спајање 2 низа

Спајање се врши помоћу функције цонцат

Исто се може постићи и помоћу оператора…

  • Претварање низа у низ

То се може постићи употребом функције поделе и оператора ...

  • Користите у мак и мин функцијама

Доле наведени исечак настоји да пронађе максималан елемент у низу, тако да прослеђујемо читав низ у функцији, али резултат добијамо као НаН

Можемо да користимо аппли, али као што се види из претходних примера, мрзим да га користим

Исто за мин

Закључак

Видели смо много ситуација у којима оператор ширења добро дође и смањује наш код, а такође га чини изузетно једноставним за разумевање.

Ако ти се допада Цлап? и прати? више.