const queue = []; queue.push(1); queue.push(2); queue.push(3); queue.shift(); queue.shift(); queue.push(4); console.log(queue.join(' -> ') + ' -> null');
Remember, shift() removes the first element (front) of the queue.
After enqueueing 1,2,3 the queue is 1 -> 2 -> 3 -> null.
Dequeuing twice removes 1 and 2.
Queue becomes 3 -> null.
Enqueue 4 adds it to the end.
Final queue: 3 -> 4 -> null.
Think about a line of people waiting for service.
FIFO means the first element that enters the queue is the first to leave, like people lining up and being served in order.
const queue = []; queue.shift(); console.log(queue.join(' -> ') + ' -> null');
What does shift() return when the array is empty?
Calling shift() on an empty array returns undefined but does not throw an error.
The queue remains empty, so join works fine and prints ' -> null'.
const queue = []; queue.push(5); queue.push(10); queue.shift(); queue.push(15); queue.shift(); queue.push(20); console.log(queue.join(' -> ') + ' -> null');
Track each enqueue and dequeue step carefully.
Enqueue 5,10: queue is 5 -> 10
Dequeue once removes 5: queue is 10
Enqueue 15: queue is 10 -> 15
Dequeue once removes 10: queue is 15
Enqueue 20: queue is 15 -> 20
const queue = []; queue.push(1); queue.push(2); queue.shift(); queue.push(3); queue.shift(); queue.shift(); queue.push(4); console.log(queue.length);
Count carefully how many items are removed and added.
Operations:
enqueue 1,2 → queue: 1,2
dequeue removes 1 → queue: 2
enqueue 3 → queue: 2,3
dequeue removes 2 → queue: 3
dequeue removes 3 → queue empty
enqueue 4 → queue: 4
Length is 1.
