• 0 Posts
  • 2 Comments
Joined 1 year ago
cake
Cake day: August 3rd, 2023

help-circle
  • CheezyWeezle@lemmy.worldtoProgrammer Humor@lemmy.mlGender.js
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    11 months ago

    Kind of. With hoisting, the compiler/interpreter will find variable declarations and execute them before executing the rest of the code. Hoisting leaves the variables as undefined until the code assigning the value to the variable is executed. Hoisting does not initialize the variables.

    For example:

    console.log(foo);
    var foo;
    //Expected output: console logs ‘null’

    foo = ‘bar’;
    console.log(foo);
    var foo;
    //Expected output: console logs ‘bar’

    console.log(foo === undefined);
    var foo;
    //Expected output: console logs ‘true’

    This means you can essentially write your code with variable declarations at the end, but it will still be executed as though the declarations were at the beginning. Your initializations and value assignments will still be executed as normal.

    This is a feature that you should probably avoid because I honestly cannot think of any good use case for it that won’t end up causing confusion, but it is important to understand that every variable within your scope will be declared at the beginning of execution regardless of where it is written within your code.


  • CheezyWeezle@lemmy.worldtoProgrammer Humor@lemmy.mlwhat?
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    1 year ago

    They do share a significant commonality, though; they are both interpreted languages, rather than compiled. Sure, you can compile them, but they are meant to be run interpreted so you can quickly and easily tweak and change things and not have to wait for compilation to see the results. In that regard they are very comparable.