Using a bitmask in Javascript
With bit masking, multiple flags are combined into a single variable that can be tested by applying a mask.
This enables a single variable to store multiple values.
Function parameters
For example, say you want to pass any number of options to a function without defining individual parameters or configuring a dynamic object:
const OPTION_1 = 0x0001;
const OPTION_2 = 0x0010;
const OPTION_3 = 0x0100;
const OPTION_4 = 0x1000;
function fn(options) {
if (options & OPTION_1) { console.log("1"); }
if (options & OPTION_2) { console.log("2"); }
if (options & OPTION_3) { console.log("3"); }
if (options & OPTION_4) { console.log("4"); }
}
Above, four options are defined which can be passed arbitrarily to the function such as:
fn(OPTION_1); // outputs: 1
fn(OPTION_2 | OPTION_4); // outputs: 2, 4
fn(OPTION_3 | OPTION_1); // outputs: 1, 3
fn(OPTION_1 | OPTION_2 | OPTION_3); // outputs: 1, 2, 3