“void 0”到底是什么——它有什么用?

嘿,伙计们!今天,我们将讨论 JavaScript 中一个非常具体的命令:“void (0)”,也被视为“void 0”。这是一个古怪的命令;许多人的目的并不完全清楚。更令人困惑的是,还有一条错误消息:“javascript:void(0)”,它基本上是不相关的。我们将讨论两者以消除混乱。让我们看看我们能不能把事情弄清楚一点。让我们开始?


“javascript:void(0)”错误信息
正确的。根据 Tech-Faq 的说法,这是一个相当独特的错误,主要是因为几乎任何操作系统的用户都会遇到它。

有很多问题可能会导致弹出这个麻烦的小错误提示:

与广告拦截器/弹出窗口拦截器冲突
写得不好的 JavaScript
禁用的 JavaScript
过时的网络浏览器
使用代理服务器
正如我确定你已经注意到的那样,除了第二种情况之外,错误都是由用户引起的,它通常是由“网页作者没有检查他们的脚本的兼容性”引起的。在这种情况下,用户别无选择,只能使用编写脚本的浏览器。

如果您是开发人员或系统管理员,这提醒您在尽可能多的浏览器中测试您的脚本。

现在换一个完全不同的东西……名字非常相似。

“void”运算符和“void 0”
“void”是一个可以应用于脚本中任何参数的运算符。语法有点像这样:

<头部>
<脚本类型=”文本/javascript”>
<!–
无效函数()
javascript:无效函数()

要么

无效(函数())
javascript:无效(函数())
//–>
</脚本>
</head>

当“void(0)”应用于表达式或参数时,返回的值始终为“未定义”,而不管存在的其他值。乍一看,这似乎有些无用;而且有点钝。毕竟,为什么不简单地使用“未定义”本身呢?

就此而言,你为什么需要这些东西呢?

几个原因。让我们首先解释为什么“未定义”值首先很重要。信不信由你,实际上使用它的原因有很多。

为什么使用“空”?

根据 Tizag 的说法,“void”最常见的用途之一是让 JavaScript 可以在 Web 浏览器中执行,而无需加载新页面。看,大多数浏览器允许您通过在 URL 栏中输入脚本来运行脚本。使用“void (0)”,您无需切换页面即可执行此操作——它有效地取消了页面加载。

这允许您构建一个链接,其唯一目的是执行 JavaScript 代码(尽管有些人可能会争辩说这并不是链接的真正目的)。

“Web 浏览器会尝试获取任何用作 URL 的内容并加载它,”Tizag 的教程中写道。 “我们可以在不加载新页面的情况下使用 JavaScript Alert 语句的唯一原因是因为 alert 是一个返回空值的函数。这意味着当浏览器尝试加载新页面时,它会看到 null 并且没有任何内容可加载。”

“这里要注意的重要一点,”本教程继续说,“如果您确实使用 JavaScript 语句作为返回值的 URL,浏览器将尝试加载页面。为防止这种不必要的操作,您需要在此类语句中使用 void 函数,该函数将始终返回 null 并且永远不会加载新页面。”

“void (0)”和“undefined”有什么区别?

简单地使用“undefined”而不是“void (0)”的问题在于前者不是保留字——它通常是一个变量,而不是一个运算符;在某些 JavaScript 环境中,它实际上是一个全局的。它有时可能具有“未定义”的值,但这不能保证,因为有人总是可以为其分配一个不是“未定义”的值。

另一方面,“void”总是返回“undefined”的值。至于“void (0)”和……以及“void”与任何其他字符之间的区别;这有点无关紧要。 “void “dingleberries” 和 “void (0)” 或 “void 0” 一样有效。