Array destructuring is a unique technique that allows you to neatly extract an array’s value into new variables.
An array bundles values that a user cannot name, while an object bundles values that a user can name.
filter() creates a new array that contains all the calling array’s elements that passed the test specified by the method’s argument.
Whenever you use forEach() on an array, the method executes its function argument once for each item of the calling array.
indexOf() searches its calling array for the first occurrence of the method's string argument.
lastIndexOf() searches its calling array for the last occurrence of the method's argument.
map() creates a new array that contains the result of invoking map()'s function argument on each item of the calling array.
matchAll() creates a new iterator object containing all the patterns—including capturing groups—that match the method's regular expression argument.
An impure function is a function that contains one or more side effects. A pure function is a function without any side effects.
Whenever you use reduce() on an array, the method uses its function argument to reduce its calling array’s items to a single value.
The spread operator helps to expand iterables into individual elements. It is effective only when used within an array, function, or object.