# Set
A Set object lets you store unique values of any type, whether primitive values or object references. It remembers insertion order for iteration.
### add(value) function
Add a new element with the given value to the Set, if it’s not already present.
**value**: The value to add.
**Returns**: The Set object (for chaining).
### has(value) function
Return a boolean indicating whether the Set contains the specified value.
**value**: The value to check for presence in the Set.
**Returns**: True if the value is found, otherwise false.
### delete(value) function
Remove the specified value from the Set if it exists.
**value**: The value to remove.
**Returns**: True if the value was present and removed, otherwise false.
### clear() function
Remove all elements from the Set, leaving it empty.
**Returns**: None
### size accessor
(read only)
A read-only property returning the number of elements in the Set.
**Returns**: The number of unique values in the Set.
### forEach(callbackFn, thisArg) function
Execute a provided callback function once for each value in the Set,
in insertion order.
**callbackFn**: A function(value, valueAgain, set) to execute on each element.
**thisArg**: Optional. A value to use as 'this' when executing callbackFn.
**Returns**: None
### values() function
Alias for values() in a Set. Return a new Iterator object containing all
the values (as keys) in the Set, in insertion order.
**Returns**: An iterator of the Set's values.
### keys() function
Alias for values() in a Set. Return a new Iterator object containing all
the values (as keys) in the Set, in insertion order.
**Returns**: An iterator of the Set's values.
### entries() function
Return a new Iterator object containing [value, value] pairs for each value
in the Set, in insertion order. This maintains API consistency with Map objects.
**Returns**: An iterator of [value, value] pairs.