『专业写法』专业的void

1,051 阅读1分钟

void,发音/vɔɪd/

1. 干什么的?

用来返回undefined,或者代替undefined去做不等于比较

1.1 返回undefined

  1. 常见<a href="javascript:void(0);">来防止<a>标签触发页面跳转
  2. 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. 花里胡哨?

image.png

2.1 在TS中的应用

ts转义中 void 0 会被经常用到,是不是面试的时候又多了一个不经意的小牛逼?

image.png

2.1 可以让 JavaScript 引擎把一个function关键字识别成函数表达式

立即执行函数(function fc(){})()

image.png

不能直接去掉括号,去掉会报错

image.png

加上void就ok

image.png

当然还可以不写标识符

image.png

ts 中namespace用的就是立即执行函数,CMD的模块也是如此

image.png

3. 写进自己的代码

if(res !== undefined) {
    ...
}

替换成

if(res !== void 0) {
    ...
}

是不是一下子就 “咦~,不简单不简单!" 了,同事之间是不是又有的得瑟的了?

介个就叫 专业

image.png


参考