Can I set variables to undefined or pass undefined as an argument?

后端 未结 10 1884
北荒
北荒 2020-11-30 15:53

I’m a bit confused about JavaScript’s undefined and null values.

What does if (!testvar) actually do? Does it test for u

相关标签:
10条回答
  • 2020-11-30 16:47

    Try this:

    // found on UglifyJS
    variable = void 0;
    
    0 讨论(0)
  • 2020-11-30 16:48

    The for if (something) and if (!something) is commonly used to check if something is defined or not defined. For example:

    if (document.getElementById)
    

    The identifier is converted to a boolean value, so undefined is interpreted as false. There are of course other values (like 0 and '') that also are interpreted as false, but either the identifier should not reasonably have such a value or you are happy with treating such a value the same as undefined.

    Javascript has a delete operator that can be used to delete a member of an object. Depending on the scope of a variable (i.e. if it's global or not) you can delete it to make it undefined.

    There is no undefined keyword that you can use as an undefined literal. You can omit parameters in a function call to make them undefined, but that can only be used by sending less paramters to the function, you can't omit a parameter in the middle.

    0 讨论(0)
  • 2020-11-30 16:53

    JavaScript, how to set a variable to undefined on commandline:

    Set a variable to undefined in the js javascript command line terminal that comes with Java on Ubuntu 12.10.

    el@defiant ~ $ js
    
    js> typeof boo
    "undefined"
    
    js> boo
    typein:2: ReferenceError: boo is not defined
    
    js> boo=5
    5
    
    js> typeof boo
    "number"
    
    js> delete(boo)
    true
    
    js> typeof boo
    "undefined"
    
    js> boo
    typein:7: ReferenceError: boo is not defined
    

    If you set a variable to undefined in a javascript:

    Put this in myjs.html:

    <html>
    <body>
        <script type="text/JavaScript">
            document.write("aliens: " + aliens);
            document.write("typeof aliens: " + (typeof aliens));
            var aliens = "scramble the nimitz";
            document.write("found some aliens: " + (typeof aliens));
            document.write("not sayings its aliens but... " + aliens);
            aliens = undefined;
            document.write("aliens deleted");
            document.write("typeof aliens: " + (typeof aliens));
            document.write("you sure they are gone? " + aliens);
        </script>
    </body>
    </html>
    

    It prints this:

    aliens: undefined
    typeof aliens: undefined
    found some aliens: string
    not sayings its aliens but... scramble the nimitz
    aliens deleted
    typeof aliens: undefined
    you sure they are gone? undefined
    

    WARNING! When setting your variable to undefined you are setting your variable to another variable. If some sneaky person runs undefined = 'rm -rf /'; then whenever you set your variable to undefined, you will receive that value.

    You may be wondering how I can output the undefined value aliens at the start and have it still run. It's because of javascript hoisting: http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html

    0 讨论(0)
  • 2020-11-30 16:54

    To answer your first question, the not operator (!) will coerce whatever it is given into a boolean value. So null, 0, false, NaN and "" (empty string) will all appear false.

    0 讨论(0)
提交回复
热议问题