Стек можливостей JS array: push() і pop()

9 0 Новини високих технологій

Стек дозволяє віднести до даних історію зміни значень змінних. Опис даних і алгоритмів лежить в основі програмування. Стек - це основа для передачі управління між функціями, організації рекурсії і посилань на параметри. Синтаксис і семантика javascript допомогою методів масиву push() і pop() дають можливість маніпулювати змістом і враховувати фактор часу. Особливість мови браузера і його логіка дозволяють інакше поглянути на можливості фактора часу.

Масив даних і логіка його освіти

Просто описати змінну. Нескладно створити масив змінних. Алгоритм, що використовує дані, - це статичне і просте рішення задачі. Класична робота з даними:
  • описати (створити) змінну;
  • присвоїти значення;
  • змінити значення;
  • видалити змінну.
  • Функції push() і pop() дозволяють змінити сутність змінних та їх використання. Ідея стека не змінилася з моменту її «народження», але особливість JS як мови браузера і сучасної концепції програмування дозволяє врахувати фактор часу та надати даними динаміку.


    Функція JS array.push('var value') - додати щось в кінець масиву. Функція JS array.pop() - отримати останній елемент масиву. Покажчик в контексті push/pop при додаванні переміщається на доданий елемент, при витяганні - на передостанній елемент, а останній елемент є результатом виконання операції.
    Стек можливостей JS array: push() і pop()
    Стос тарілок - традиційне опис стека в javascript - набуває нового значення. Нехай завжди змінна - це масив. Власне масив - це сукупність змінних, але розглядаючи змінну як масив, можна інакше подивитися на динаміку зміни її значень.

    Рух за значенням

    Суть стека - прийшов останнім, пішов першим. Не можна дістати значення поза цього порядку. Строго дотримуючи це правило, розглядаючи значення всього масиву як одну змінну можна отримати динаміку зміни значень цієї змінної в часі.


    Стек можливостей JS array: push() і pop()
    У цьому прикладі додавання значень JS array.push() - це одна послідовність дій, витяг значень JS array (pop) - інша послідовність. Обидва варіанти дій взаємопов'язані. Це означає, що активний елемент змінює своє значення не тільки по часу, але і за логікою свого зміни.

    Рекурсія і динаміка значення

    Якщо функція може викликати саму себе і безпечно виконати своє призначення - це повна функціональність. Простий приклад - таблиця. У таблиці можуть бути і інші таблиці. А кожна таблиця - це рядки, стовпці, клітинки. Кожна комірка може містити таблицю. Кілька осередків по рядку або стовпцю можуть бути об'єднані в одну клітинку, у якій може знаходитися таблиця. У таблиці, що міститься в комірці, може бути комірка з двома і більше таблицями. Реалізувати сказане в класичному стилі програмування практично неможливо, але рекурсивном - елементарно. Якщо функціональність алгоритму роботи з таблицею дозволяє реалізувати себе всередині будь-якої комірки - значить, це JS array push. На javascript цей «фокус» має особливий сенс. Таблиці - це кероване застосування. Дерево сторінки (DOM) - це робота на сторінці. На елементах DOM (тегах сторінки) висять обробники. Один варіант, коли такий обробник спрацьовує один раз, зовсім інший варіант, коли він може викликати сам себе багато разів. В розрізі всіх обробників всіх елементів сторінки виходить динаміка сторінки в часі.
    Стек можливостей JS array: push() і pop()
    JS array push/pop і рекурсія - це дещо інше уявлення про логіку роботи сторінки: все змінюється так, як потрібно в поточній ситуації, а не програмується заздалегідь у вигляді послідовної відпрацювання дій відвідувача.