Start with a tiny JavaScript program that stores a name and prints a greeting.

console.log `console.log` prints a value so you can see what the program produced.

Hello JavaScript

name
hello.js
Replay: real traced execution (multi-file project)
const name = "JavaScript";
const message = "Hello, " + name + "!";

console.log(message);
const name = "Ada";
const message = "Hello, " + name + "!";

console.log(message);
const name = "Brendan";
const message = "Hello, " + name + "!";

console.log(message);
  1. name ← JavaScript, message ← Hello, JavaScript!

    1const name→ JavaScript = "JavaScript"; //@name="Ada", "Brendan"2const message→ Hello, JavaScript! = "Hello, " + name→ JavaScript + "!";34console.log(messageHello, JavaScript!);
    outputHello, JavaScript!
  1. name ← Ada, message ← Hello, Ada!

    1const name→ Ada = "Ada";2const message→ Hello, Ada! = "Hello, " + name→ Ada + "!";34console.log(messageHello, Ada!);
    outputHello, Ada!
  1. name ← Brendan, message ← Hello, Brendan!

    1const name→ Brendan = "Brendan";2const message→ Hello, Brendan! = "Hello, " + name→ Brendan + "!";34console.log(messageHello, Brendan!);
    outputHello, Brendan!

Follow the Greeting

  1. name starts as "JavaScript".
  2. The program joins "Hello, ", name, and "!".
  3. message becomes Hello, JavaScript!.
  4. console.log(message) prints Hello, JavaScript!. | name | message | | --- | --- | | JavaScript | Hello, JavaScript! | | Ada | Hello, Ada! | | Brendan | Hello, Brendan! |

Exercise: hello.js

Reproduce Hello, JavaScript!, then try Ada and Brendan and predict each greeting before running it.