void,发音/vɔɪd/
1. 干什么的?
用来返回undefined,或者代替undefined去做不等于比较
1.1 返回undefined
- 常见
<a href="javascript:void(0);">来防止<a>标签触发页面跳转 - 在
react或是vue项目场景中,使用箭头回调函数却不能有返回值,如() => void doSth()
1.2 代替undefined
如果你被绑架到缅北了,可能会写出:
function test(value) {
let undefined = "hello world";
if (value === void 0) {
return `value is undefined`;
}
return `value is not undefined`;
}
let value;
test(value); // 'value is undefined'
是的,undefined作为保留字是可以被赋值的(TS会报错)。
2. 花里胡哨?
2.1 在TS中的应用
ts转义中 void 0 会被经常用到,是不是面试的时候又多了一个不经意的小牛逼?
2.1 可以让 JavaScript 引擎把一个function关键字识别成函数表达式
立即执行函数(function fc(){})()
不能直接去掉括号,去掉会报错
加上void就ok
当然还可以不写标识符
ts 中namespace用的就是立即执行函数,CMD的模块也是如此
3. 写进自己的代码
if(res !== undefined) {
...
}
替换成
if(res !== void 0) {
...
}
是不是一下子就 “咦~,不简单不简单!" 了,同事之间是不是又有的得瑟的了?
介个就叫 专业