Skip to content

Latest commit

 

History

History
221 lines (140 loc) · 7.98 KB

README.md

File metadata and controls

221 lines (140 loc) · 7.98 KB

GA logo

JavaScript loops and expressions

Setup

  • Write your answers inside a file named app.js.

  • For any answers that require a written response, write the response as comments. For example:

    // 1. The difference between interpolation and
    // concatentation is . . .
  • For coded responses, as you work on them, you may want to comment out everything else but the problem you're working on so that when you load index.html in your browser, or run node app.js, your console is less cluttered.

  • Before submitting, uncomment your answers to all coded responses so that the output for each question automatically runs in the terminal. We should not have to edit your code to make the file run.

Good luck!

Part 1: Terms

  1. What is the difference between interpolation and concatenation? Give an example of each.

  2. What does the acronym DRY stand for? Why should we pay attention to it? What programming tools have we learned to write DRY code?

  3. What is the difference between declaring a variable and assigning a value to a variable? What do we mean when we say "define" a variable?

  4. When should we use const and when should we use let?

  5. Unix question: What is a "parent" directory?

  6. Unix, again: If you're not sure about how to use a Unix command, how can you get more info without being connected to the internet?

  7. More Unix: What is "tab completion" and why is it aweseome?

A reminder about error messages:

Remember that error messages are your friend. Even experienced developers constantly make syntax errors, they just have gotten faster at fixing them. They way they got faster at it is by reading error messages over and over and over and learning to understand them.



Part 2: Boolean expressions and operators

... and variable assignment

  • Remember: Expressions in JavaScript are anything that can be said to have a value.
  • Remember: Variable assignment is a right-to-left operation: the expression on the right side of the equal sign gets evaluated AND THEN put into the variable declared on the left side.
  • Using the provided variable definitions, replace the blanks with mathematical or boolean operators that make the expression evaluate to true.
  • Test your answers by using console.log in front of each expression in your answer file.
  const a = 4;
  const b = 53;
  const c = 57;
  const d = 16;
  const e = 'Kevin';
  1. a __ b;
  2. c __ d;
  3. 'Name' __ 'Name';
  4. a __ b __ c;
  5. a __ a __ d;
  6. e __ 'Kevin';
  7. 48 __ '48';


Part 3: While loops

Increase your code literacy by reading code, line by line. When you read code pretend to be the computer. It is absolutely essential that you understand what is happening each line of code you write.

1. Infinite loop?

Read the following code very carefully.

DO NOT RUN the code because it might run an infinite loop.

Answer the following question:

  • is this an infinite loop? Why or why not?

You cannot test this code, so read it line by line and 'execute' the code in your head.

while (true) {
	console.log('Do not run this loop');
}

Infinite or not infinite? Give it a good guess. It is 100% OK if you get it wrong (as long as you don't run the code). It's important to get into the habit of reading code.

2. Infinite loop II

  • is the following loop an infinite loop? Why or why not?
const runProgram = true;

while (runProgram) {
	console.log('Do not run this loop');
	runProgram = false;
}

Inifnite or not infinite? What is the expected output?

3. Reading code

Ok rest easy, no more infinite loops for now!

The following while loop uses a compound assignment operator +=. There are other compound assignment operators for other mathematical operations.

If you need a refresher on what the compound assignment operator does, have a look back at the afternoon lesson.

Without running this loop, what is the expected output?

Read the code line by line—everything happens in sequence. Add a comment before each line of code explaining what the line below it does. Then write down what output you expect to see in the console. Be patient with your thought! There is no rush. Time spent to really understand these fundamentals now will pay off a hundred fold in the coming weeks. Today we must master learn how to properly hold and use a knife and how to correctly chop an onion. Later we'll make complex dishes with many ingredients, herbs and spices!

let letters = "A";
let i = 0;

while (i < 20) {
	letters += "A";
	i++;
}

console.log(letters);

After coming to a conclusion, run the code and write down whether it gave you the expected result. If not, how did it differ?



Part 4: Loops!

1. for loops

Answer the following question:

Both for loops and while loops repeat code. But what are the differences? What are the similarities?

2. Basic for loop

Write a for loop that will console.log() the numbers 0 to 999.

3. The mechanics of a for loop

Here is an example for loop that prints a message 100 times:

for (let i = 0; i < 100; i++) {
	console.log('Without you, today\'s emotions are the scurf of yesterday\'s');
}

What are the three components of the control statement? Each component is separated by a semicolon ;.

Write your answers as comments in the file. Say what each part does.

  • The first part of the control statement is:
  • The second part of the control statement is:
  • The third part of the control statement is:

4. for loop in reverse

Using a postfix operator i-- instead of i++, write a for loop that iterates in reverse: console.log() a countdown from 999 to 0.

5. More counting

Write a for loop that uses interpolation to print a message to the console that includes the current value of i.

The loop should run from 1 to 10.

Expected output in the console:

The value of i is: 1 of 10
The value of i is: 2 of 10
The value of i is: 3 of 10
The value of i is: 4 of 10
The value of i is: 5 of 10
The value of i is: 6 of 10
The value of i is: 7 of 10
The value of i is: 8 of 10
The value of i is: 9 of 10
The value of i is: 10 of 10

"Hungry for more?"

Want an extra challenge? In many assignments or lab you'll find a "Hungry for More" section which is designed for further learning. If they seem too overwhelming you can absolutely skip them. They won't factor into your homework score, and you will be totally fine for class as long as you complete and understand the main assignment up to that point. What they will do is encourage you to go deeper, explore, and push yourself. And that will pay off big time in the long run. Below is the "hungry for more" section for this assignment.

Try to complete the following, making a commit after each one.

...as long as you don't mess up the homework assignment you just did. They get more difficult/complex as you go (more or less).

  • Create a directory called test-dir with a couple files in it. Try to make a copy of that entire directory. (Hint: man cp for more info.)
  • Find and use command line shortcuts.
  • Try applying one command to multiple files at once.
  • Try applying one command to all files in a single directory (where necessery)
  • Try applying one command to all files that match a pattern.
  • Try using a mix of absolute and relative paths.
  • Read about the text editor "vi" on google and see if you can use it to create and edit small javascript program (just a loop or something)


Homework submission

Once you've got your homework all done and pushed to github, do a pull request to get it submitted. If you're not sure how to do this, reach out to your instructor for help