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

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

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

阅读 7.4k
4 个回答

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

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

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

参考:

  1. 我专栏的第一篇文章

  2. 规范:11.4.2 The void Operator

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

感受一下文档的画风:

图片描述

文档地址:void

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

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

void 0 其实就是undefined,不过void 0还有一个用处.
可以有效减少js文本字符串的数量:
"undefined".length == 9
"void 0".length == 6

可以节省3个字符来表达undefined,同时也节省了http流量.

推荐问题
宣传栏