From what I understand, the keyword void in Javascript is some kind of function that takes one argument and always returns the undefined value. For
void also evaluates the expression you pass to it. It doesn't just return undefined.
As per this page https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void void is an operator, which simply returns undefined, after evaluating the expression you pass to it. An operator needs an operand to operate on. That is why pass a parameter.
console.log(void true);
console.log(void 0);
console.log(void "Welcome");
console.log(void(true));
console.log(void(0));
console.log(void("Welcome"));
All these statements would print undefined
var a = 1, b = 2;
void(a = a + b)
console.log(a);
And this would print 3. So, it is evident that, it evaluates the expressions we pass to it.
Edit: As I learn from this answer https://stackoverflow.com/a/7452352/1903116
undefined is just a global property which can be written to. For example,
console.log(undefined);
var undefined = 1;
console.log(undefined);
It prints
undefined
1
So, if you want to absolutely make sure that the undefined is used, you can use void operator. As it is an operator, it cannot be overridden in javascript.