欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

return void expression 有大用

js return void 0; 的疑问

参考文章:http://blog.csdn.net/aitangyong/article/details/40309211


最近在看别人的JS代码时,发现了很多类似下面的代码:

if(xxxx) return void 0;

很是奇怪,你直接return 0不就可以了吗?

查了下return void 0的结果其实是return undefined

-------------------------------------------------------------------------

为例验证,我写了如下测试代码:


console.log(void 0);
console.log(void(0));
console.log(void 'test');
console.log(void(new Date()));
结果打印出来的都是:


undefined
undefined
undefined
undefined

说明调用void的返回值永远都是undefined

---------------------------------------

查了下void的用法如下:

void (expression)   
void expression  

来自  https://blog.csdn.net/friendan/article/details/52853474



void 运算符 对给定的表达式进行求值,然后返回 undefined

语法

void expression

描述

这个运算符能向期望一个表达式的值是undefined的地方插入会产生副作用的表达式。

void 运算符通常只用于获取 undefined的原始值,一般使用void(0)(等同于void 0)。在上述情况中,也可以使用全局变量undefined 来代替(假定其仍是默认值)。

立即调用的函数表达式

在使用立即执行的函数表达式时,可以利用 void 运算符让 JavaScript 引擎把一个function关键字识别成函数表达式而不是函数声明(语句)。

void function iife() {
    var bar = function () {};
    var baz = function () {};
    var foo = function () {
        bar();
        baz();
     };
    var biz = function () {};

    foo();
    biz();
}();

JavaScript URIs

当用户点击一个以 javascript: URI 时,它会执行URI中的代码,然后用返回的值替换页面内容,除非返回的值是undefinedvoid运算符可用于返回undefined。例如:

<a href="javascript:void(0);">
  这个链接点击之后不会做任何事情,如果去掉 void(),
  点击之后整个页面会被替换成一个字符 0。
</a>
<p> chrome中即使<a href="javascript:0;">也没变化,firefox中会变成一个字符串0 </p>
<a href="javascript:void(document.body.style.backgroundColor='green');">
  点击这个链接会让页面背景变成绿色。
</a>

注意,虽然这么做是可行的,但利用 javascript: 伪协议来执行 JavaScript 代码是不推荐的,推荐的做法是为链接元素绑定事件。

规范

SpecificationStatusComment
ECMAScript Latest Draft (ECMA-262)
The void Operator
Draft
ECMAScript 2015 (6th Edition, ECMA-262)
The void Operator
Standard
ECMAScript 5.1 (ECMA-262)
The void Operator
Standard
ECMAScript 3rd Edition (ECMA-262)
The void Operator
Standard
ECMAScript 1st Edition (ECMA-262)
The void Operator
StandardInitial definition. Implemented in JavaScript 1.1

浏览器兼容

Update compatibility data on GitHub

DesktopMobileServer

ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
voidFull supportYesFull supportYesFull support1Full supportYesFull supportYesFull supportYesFull supportYesFull supportYesFull support4Full supportYesFull supportYesFull supportYesFull supportYes

Legend

  • Full support 

  • Full support

相关链接

文档标签和贡献者

 标签:  

 此页面的贡献者: mdnwebdocs-botYidadazhangchenxycdxgqfrms-GitHubEnde93lunix01yenshenziyunfeiAlexChaoSphinxKnightparano 最后编辑者: mdnwebdocs-bot


来自  https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void




普通分类: