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.

  • 相关阅读:
    BZOJ1029_建筑抢修_KEY
    黑匣子_KEY
    食物链_KEY
    滑雪_KEY
    抓猫_KEY
    线段树初步__ZERO__.
    听说alphago又要挑战sc2了?——我眼中的人工智能
    我眼中的算法
    opencv拼接相关1
    Cstring到string
  • 原文地址:https://www.cnblogs.com/chucklu/p/14205181.html
Copyright © 2011-2022 走看看