zoukankan      html  css  js  c++  java
  • What is the point of void operator in JavaScript?

    What is the point of void operator in JavaScript?

    I've seen some people using void operator in their code. I have also seen this in href attributes: javascript:void(0) which doesn't seem any better than javascript:;

    So, what is the justification of using the void operator?

    回答

    The JavaScript, the void operator is used to explicitly return undefined. Its a unary operator, meaning only one operand can be used with it. You can use it like shown below — standalone or with a parenthesis.

    void expression;
    void(expression);
    

    Lets see some examples

    void 0; //returns undefined
    void(1); //returns undefined
    
    void 'hello'; //undefined
    void {}; //undefined
    void []; //undefined
    
    void myFunction(); 
    void(myFunction());
    

    If you ask why do you need a special keyword just to return undefined instead of just returning undefined: the reason is that before ES5 you could actually name a global variable undefined, like so: var undefined = "hello" or var undefined = 23, and most browsers would accept it; the identifier undefined was not promised to actually be undefined¹. So to return the actual undefined value, the void operator is/was used. Its not a very popular operator though and is seldom used.

    Let's see an example of function with void,

    //just a normal function
    function test() {
      console.log('hello');
      return 2;
    }
    
    //lets call it
    console.log(test()); //output is hello followed by 2
    
    //now lets try with void
    console.log(void test()); //output is hello followed by undefined
    

    void discards the return value from the function and explicitly returns undefined.

    You can read more from my tutorial post: https://josephkhan.me/the-javascript-void-operator/

    ¹ In ECMAScript 5 and later, the global variable undefined is guaranteed to be undefined (ECMA-262 5th Ed., § 15.1.1.3), though it is still possible to have a variable inside an inner scope be named undefined.

  • 相关阅读:
    连通分量板子
    2017年7月17日
    强连通缩点— HDU1827
    马拉车代码
    表达式求值
    Gym-100883F、Gym-101095B状态压缩小结
    矩阵快速幂小结-Hdu2604
    3月27日
    简单移动端自适应轮播图
    上了热搜榜前端工程师面试内幕
  • 原文地址:https://www.cnblogs.com/chucklu/p/14205181.html
Copyright © 2011-2022 走看看