H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【Web前端问题】js中void一个数字干吗用的?

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

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

回答:

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流量.

本文地址:H5W3 » 【Web前端问题】js中void一个数字干吗用的?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址