【问题标题】:What is purpose of using `void` here? [duplicate]在这里使用 `void` 的目的是什么? [复制]
【发布时间】:2011-05-25 19:11:19
【问题描述】:

可能重复:
what is the point of void in javascript

在这里使用void 的目的是什么?如果只是删除void(),它应该也可以工作,对吧?

var b=document.body;

if(b&&!document.xmlVersion) {
   void(z=document.createElement('script'));
   void(z.src='http://www.google.ca/reader/ui/subscribe-bookmarklet.js');
   void(b.appendChild(z));
}
else {
  location='http://www.google.com/reader/view/feed/'+encodeURIComponent(location.href);
}

【问题讨论】:

  • This Answer 解释它。
  • @onteria_ 它被用作函数 3 个不同的时间

标签: javascript


【解决方案1】:

void 是运行表达式并返回 undefined 的关键字

void 0 === undefined

void (foo = 42) === undefined

关于href="javascript:..." 的工作原理。

除非返回值未定义。

您需要返回undefined,否则页面将被覆盖。使用void 关键字是实现此目的的最简单方法。

【讨论】:

    【解决方案2】:

    是的。它会在没有 void 的情况下工作。

    这里没有必要使用 void。

    【讨论】:

    • .. 除了将替换页面内容的部分。
    • ...这不会发生,因为这些语句不是javascript: 链接中的表达式。
    • 它是 javascript: 小书签的一部分。 google reader subscription bookmarklet
    【解决方案3】:

    我用谷歌搜索了您的代码 sn-p,它看起来通常嵌入在前面带有“javascript:”的链接中。引用 Mozilla 对 void 运算符的参考:

    JavaScript URI

    当浏览器遵循 javascript: URI 时,它会评估 URI 中的代码,然后将页面内容替换为返回值,除非返回值未定义。 void 运算符可用于返回 undefined。例如:

    <a href="javascript:void(0);">Click here to do nothing</a>
    <a href="javascript:void(document.body.style.backgroundColor='green');">Click here for green background</a>
    

    但是请注意,现在通常不鼓励使用 javascript: URI 来替代其他替代方法,例如事件。

    来源:https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/void

    因此,当代码在链接内执行时,它可以防止页面内容被覆盖。

    在这种情况下,如果代码在没有 javascript: URI 的情况下执行,则 void 运算符应该没有任何区别。 void 运算符只计算其输入表达式并返回 undefined。

    【讨论】:

      猜你喜欢
      • 2011-08-15
      • 2014-06-06
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 2020-09-16
      相关资源
      最近更新 更多