首页 > js中void一个数字干吗用的?

js中void一个数字干吗用的?

function getItemKey (item, key) {
  if (!item || !key) return void 666
  return typeof key === 'string'
    ? item[key]
    : key(item)
}

看到一段源代码,这里为什么要写void 666?


相当于return undefined;,不写666也行,其实你写啥都无所谓,譬如:return void 'fucking'

感受一下文档的画风:

文档地址:void

严格来说,这种方式还是和直接返回undefined略有区别的,好歹她会先把void后面的表达式执行了,再返回undefined


return 666的结果是undefined,目的就是为了返回undefined

不过一般都是void 0,用666纯属开玩笑,我还见过void 23333呢。

至于为什么不直接用undefined,是因为undefined是个标识符,在某些环境下可能被重新赋值。所以用void更保险。

参考:

  1. 我专栏的第一篇文章

  2. 规范:11.4.2 The void Operator


void是javascript中定义的一个操作符
void后面跟一个表达式,void操作符会立即执行后面的表达式,并且统一返回undefined

【热门文章】
【热门文章】