js中void的使用

作者: 小强不是蟑螂啊 | 来源:发表于2019-03-14 12:42 被阅读0次

ECMAScript 262规范,有如下描述:

The void Operator
The production UnaryExpression : void UnaryExpression is evaluated as follows:

  • Let expr be the result of evaluating UnaryExpression.
  • Call GetValue(expr).
  • Return undefined.
    NOTE: GetValue must be called even though its value is not used because it may have observable side-effects.

搬译一下:

void操作符

产生式 UnaryExpression : void UnaryExpression 按如下流程解释:

  • expr 为解释执行UnaryExpression的结果。
  • 调用 GetValue(expr).
  • 返回 undefined.

注意:GetValue一定要调用,即使它的值不会被用到,但是这个表达式可能会有副作用(side-effects)。

重点在于:无论void后的表达式是什么,都会执行,void操作符都会返回undefined
通常void在js中有两层作用:
1 返回undefined
undefined在js中不是保留字,那么我们就可以定义undefined这个变量,当我们要真的使用全局的undefined时,就可能被局部变量的覆盖,所以我们可以用 void 0去代替undefined,举个例子
function exam(){
var undefined = 5;
console.log(undefined);
}
我们执行完上面的那个函数,打印出来的是5,而不是undefined,我们可以在函数里执行 console.log(void 0)来代替

2 执行无用操作
如果有a链接,我们不希望点击的时候进行跳转,如果不写东西的话会又会刷新,所以我们通常会这么写:<a href=“javascript:void 0”>来执行空操作

3 void执行后面的表达式
例如: var a =1;void a++;
当我们执行完上面的语句,a就会是2

相关文章

  • js中void的使用

    在ECMAScript 262规范,有如下描述: The void OperatorThe production ...

  • JS中的void

    见过 它俩点击a标签都不会执行其他操作,也不会刷新页面。但是并不知道这两者有什么区别,后面查知: 使用void(0...

  • js 中的 void 0

    在很多源码中的 constant.js 文件中,会发现const UNDEFINED = void 0。 为什么不...

  • OC与H5交互具体方法实现

    1. 基本使用- OC调JS - (void)webViewDidFinishLoad:(UIWebView*)w...

  • 关于 js 中的 void 0

    学习underscore.js的时候,发现源码中经常出现类似下面的代码: void其实是javascript中的一...

  • void 0 与 undefined

    在看React的react-dom.js源码的时候,发现void 0,在很多地方用到。回忆起最初使用void 0的...

  • js中的void操作符

    void运算符会对它的操作数表达式进行求值,然后忽略掉求值的结果,直接返回 undefined。 void exp...

  • js之void

    js void关键字

  • 8.UIWebView与JS交互的语法总结

    UIWebView 与 JS 交互的语法总结,写在UIWebView的delegate中,写在 - (void)w...

  • 关于JS中的void操作符

    今天在看combineReducers方法时看见大佬用了void 0的骚操作,不明觉厉,特地查了下,原来就是und...

网友评论

    本文标题:js中void的使用

    本文链接:https://www.haomeiwen.com/subject/dssqmqtx.html