背景
在check编译后的代码后,发现undefined
被编译成了void 0
, so why ?
void 0 与 undefined 区别
- undefined可以被重写,但是void不能;
- void 0比undefined占用更少的字节。
科普void
void的是一元运算符(单目运算符), 后面跟着的表达式会全部执行
The void operator evaluates the given expression and then returns undefined.
void 运算符能对给定的表达式进行求值,然后返回 undefined。如:
let num = 1;
let res = void ++num;
输出num 2 ,而 res却是 undefined;
注: void 0 同 void(0)
单目运算符:运算所需变量为一个的运算符;在运算符中优先级最高,除了void以外,在js中还有自增(++)、自减(--)
另附运算符优先级
image.png