javascript - 为什么 JavaScript 中的 void 需要参数?

标签 javascript void

据我所知,Javascript 中的关键字 void 是一种接受一个参数并始终返回 undefined 值的函数。出于某种原因,你需要给它传递一个参数;没有它就无法工作。

有什么理由需要这个参数吗?

重点是什么?为什么没有争论它就不能工作。我看到它的唯一用途是产生 undefined 结果。它还有其他用途吗?

如果不是,那么传递表达式的要求似乎毫无意义。

最佳答案

根据此页面 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void void 是一个运算符,它在评估传递给它的表达式后简单地返回 undefined。运算符需要一个操作数来进行运算。这就是传递参数的原因。

console.log(void true);
console.log(void 0);
console.log(void "Welcome");
console.log(void(true));
console.log(void(0));
console.log(void("Welcome"));

所有这些语句都会打印undefined

var a = 1, b = 2;
void(a = a + b)
console.log(a);

这将打印 3。因此,很明显,它会评估我们传递给它的表达式。

编辑: 正如我从这个答案中了解到的那样 https://stackoverflow.com/a/7452352/1903116

undefined 只是一个可以写入的全局属性。例如,

console.log(undefined);
var undefined = 1;
console.log(undefined);

它打印

undefined
1

因此,如果您想绝对确保使用 undefined,您可以使用 void 运算符。因为它是一个运算符,所以它不能在 javascript 中被覆盖。

关于javascript - 为什么 JavaScript 中的 void 需要参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19367589/

相关文章:

java - 此处不允许“void”类型(java)错误

c++ - 无法将 ‘void* (Network::*)(void*)’ 转换为 ‘void* (*)(void*)’

javascript - 如何在点击时清除文本区域?

c++ - 如何将一个 cpp 文件中的 void 函数的值传递给另一个 cpp 文件中的另一个 void 函数?

javascript - 为什么我的表单中有未定义/隐藏的元素?

javascript - 更改另一个 div 鼠标悬停上的多个 div 内容,无需 css/使用 xml 源文件

c++ - 为什么不允许使用 0 作为 void* 的默认非类型模板参数

java - 我需要使用在不同类的类内的方法中创建的多个字符串

javascript - 在单页应用程序上管理 JavaScript 的最佳实践

javascript - 我需要一个示例来说明如何使用 Javascript 计时器来了解用户何时创建了新的 Facebook 事件。