-
Notifications
You must be signed in to change notification settings - Fork 497
/
stack.js
37 lines (33 loc) · 676 Bytes
/
stack.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class Stack {
constructor (size = 0) {
this._array = [];
this._size = size;
}
push (argument) {
if (this._size > 0 && this._array.length === this._size) {
throw new Error('Unable to push to full stack');
}
this._array.push(argument);
}
pop () {
if (this._array.length === 0) {
throw new Error('Unable to pop from empty stack');
}
return this._array.pop();
}
}
function main () {
let st = new Stack();
st.push('Hello World!');
st.push(1223);
st.push('last one');
console.log(st.pop());
console.log(st.pop());
console.log(st.pop());
try {
console.log(st.pop());
} catch (error) {
console.log('Error: ' + error.message);
}
}
main();