# W1D2 Learning Objectives
```
MONDAY: Expression Lesson Learning Objectives
// 1. Given a working REPL interface, write and execute a statement that will print “hello world” using console.log
console.log("hello world")
// 2. Identify that strings are a list of characters defined by using double or single quotes
"hi!"
'hi!'
// 3. Given an arithmetic expression using +, -, *, /, %, compute its value
42;
-5;
3.14159;
7.0;
console.log(2 + 3); // => 5
console.log(42 - 42); // => 0
console.log(-4 * 1.5); // => -6
console.log(25 / 8); // => 3.125
console.log(10 % 3); // => 1
console.log(14 % 5); // => 4
console.log(20 % 17); // => 3
console.log(18 % 6); // => 0
console.log(7 % 9); // => 7
// 4. Given an expression, predict if its value is NaN
let num;
console.log(num + 3); // NaN
console.log(undefined + 3); // NaN
console.log("fish" * 2); // NaN
// 5. Construct the truth tables for &&, ||, !
console.log(!true); // => false
console.log(!false); // => true
console.log(!!false); // => false
console.log(false && false); // => false
console.log(false && true); // => false
console.log(true && false); // => false
console.log(true && true); // => true
console.log(false || false); // => false
console.log(false || true); // => true
console.log(true || false); // => true
console.log(true || true); // => true
console.log(true || true && false); // => true
console.log(false && !(false || true)); // => false
// 6. Given an expression consisting of >, >=, ===, <, <=, compute it’s value
console.log(10 > 5); // => true
console.log(10 < 5); // => false
console.log(1 < 7); // => true
console.log(7 <= 7); // => true
console.log(5 === 6); // => false
console.log(5 !== 6); // => true
console.log("a" !== "A"); // => true
console.log(false === false); // => true
console.log("a" < "b"); // => true
console.log("apple" < "abacus"); // => false
console.log("app" < "apple"); // => true
console.log("zoo" > "mississippi"); // => true
// 7. Apply De Morgan’s law to a boolean expression
!(A || B) === !A && !B
!(A && B) === !A || !B
// 8. Given an expression that utilizes operator precedence, compute its value
// modulo has precedence over addition
console.log(4 + 12 % 5); // => 6
console.log((4 + 12) % 5); // => 1
// 9. Given an expression, use the grouping operator to change it’s evaluation
console.log(5 * 3 + 2); // => 17
console.log(2 + 3 * 5); // => 17
console.log((2 + 3) * 5); // => 25
// 10. Given expressions using == and ===, compute their values
console.log(5 === "5"); // false
console.log(5 == "5"); // true
console.log(0 === false); // false
console.log(0 == false); //true
// 11. Given a code snippet using postfix ++, postfix --, +=, -=, /=, *=, predict the value of labeled lines
let bootcamp = "App Academy";
console.log(bootcamp); // 'App Academy'
let birthYear = 2012;
console.log(birthYear); // 2012
// 12. Create and assign a variable using let to a string, integer, and a boolean. Read its value and print to the console.
let word = "hi";
let num = 2;
let status = false;
console.log(word); //=> "hi"
console.log(num); //=> 2
console.log(status); //=> false
// _____________________________________
// TUESDAY: Strings Learning Objectives
// 1. Describe the properties of a string
// Always wrapped by "" or '' with any characters inside.
// 2. Create a string
"hello"
// 3. Find the length of a string
"hello".length
// 4. Find the character at a certain index in a string
"hello"[4] // => 'o'
// 5. Concatenate two strings together
"hello " + "world"
// 6. Find the first instance of a character in a string
"hello".indexOf("h") //=> 0
"hello".indexOf("w") //=> -1
// 7. Create a new string from a sub-section of another string
let oldWord = "hello"
oldWord.slice(3) //=> "lo"
oldWord.slice(1,4) //=> "ell"
// TUESDAY: Intro to Functions Lesson Learning Objectives
// 1. Define a function using function declaration
// A function definition consists of the function keyword, followed by three things:
// The name of the function.
// A list of parameters to the function, enclosed in parentheses, ().
// The code to be run when this function is run, enclosed in curly brackets, { }.
// 2. Define a function that calculates the average of two numbers, call it, pass in arguments, and print its return value
function average(number1, number2) {
return (number1 + number2) / 2;
}
// 3. Identify the difference between parameters vs arguments
// // PARAMETERS: Parameters are comma separated variables specified as part of a function's declaration. You always want to write functions to accept as wide a range of data as possible. Utilizing the incoming parameters to a function is key to keeping functions flexible and re-usable.
// ARGUMENT: Arguments are values passed to the function when it is invoked.When we specify what data to use for a function call, we refer to that process as passing arguments to the function.
// TUESDAY: Control Flow and Array Lesson Learning Objectives
// 1. Define a function that accepts a sentence string and two words as args. The function should return a boolean indicating if the sentence includes either word.
// EXERCISES:[STRING INCLUDED]
// 2. Identify a pair of mutually exclusive conditions.
// Mutually exclusive - if one condition is true the other condition must be false, use an if/else statement. "Coin flip!"
function numberSeparator(number) {
if (number > 100) {
bigNumber();
} else {
smallNumber();
}
}
// 3. Given a for loop, translate it into a while loop, and vice-versa.
// EXERCISES: [While Loop Translation],[For Loop Translation]
// 4. Write a function that iterates through a provided string argument.
let testString = "testing";
for (let index = 0; index < testString.length; index += 1) {
let letter = testString[index];
console.log(letter);
}
// 5. Given a description of pig latin, write a function that takes in a string argument and utilizes String's slice() method to translate the string into pig latin.
// EXERCISE: [Pig Latin]
// 6. Write a function that takes in an array of words and a string as arguments and returns a boolean indicating whether the string is located inside of the array. The function must use Array's indexOf() method.
// EXERCISE: [Array Index Of]
// 7. Define that an array literal is an ordered list of values defined by using bracket and individual values are read by indexing.
["this", "is", "array", "literal"]
//--0--, --1-, ---2-- , ----3----
// _____________________________________
// WEDNESDAY: Intermediate Functions Lesson Learning Objectives
// 1. Identify that strings are immutable and arrays are mutable
// ----^-----------^----- --^----------^----
// 2. Define a function using both function declaration and function expression syntax
let calculateAverage = function(a, b) {
return (a + b) / 2;
};
console.log(calculateAverage(10, 20)); // 15
// 3. Utilize Array.push, .pop, .shift, .unshift to mutate an array
// EXERCISES: [Add to Array - Research],[Remove from Array - Research]
// 4. List the arguments that can be used with Array.slice
// array.slice(startIndex, endIndex)
// 5. Write a function that sums up elements of an array, given an array of numbers as an argument
// EXERCISE: [Sum Array Recall]
// 6. Define a function that takes in an array of numbers and returns a new array containing only the primes
// EXERCISE: [Choose Primes](Thursday)
// 7. Define a function that takes in a 2D array of numbers and returns the total sum of all elements in the array
// 8. Define a function that takes in an array of elements and returns a 2d array where the subarrays represent unique pairs of elements
// EXERCISE: [Pairs Maker]
// 9. Define a function that takes in an array of numbers as an argument and returns the smallest value in the array; if the array is empty return null
// EXERCISE: [Min Value]
// _____________________________________
// THURSDAY: Two-Dimensional Arrays (2D Arrays)
// 1. index into the inner elements of a 2D array
let twoDimensional = [["a", "b", "c"], ["d", "e"], ["f", "g", "h"]];
console.log(twoDimensional[1]); // [ 'd', 'e' ]
console.log(twoDimensional[1][0]); // 'd'
let subArr = twoDimensional[1];
console.log(subArr[0]); // 'd'
// 2. use nested loops to iterate through a 2D array
let array = [["a", "b", "c"], ["d", "e"], ["f", "g", "h"]];
for (let i = 0; i < array.length; i++) {
let subArray = array[i];
console.log(subArray);
for (let j = 0; j < subArray.length; j++) {
console.log(subArray[j]);
}
}
// THURSDAY: Helper Functions
// 1. Use your best judgement to determine when to decompose your problem into helper functions
function isPrime(n) {
for (let i = 2; i < n; i += 1) {
if (n % i === 0) {
return false;
}
}
return true;
}
function laligatSum(n) {
let sum = 0;
for (let i = 2; i <= n; i += 1) {
if (isPrime(i)) { // if i is a prime,
sum += i; // then add it to sum.
}
}
return sum;
}
// 2. Helper functions are useful at managing complexity of a program by hiding some implementation details to make code more readable
// !IMPORTANT
// THURSDAY: Array Splice
// 1. list all possible arguments that can be used with the Array.splice method
// array.splice(start, deleteCount, item1, item2)
// THURSDAY: String.split and Array.join
// 1. use the string.split method to turn a string into an array
let sentence = "follow the yellow brick road";
console.log(sentence.split(" ")); // [ 'follow', 'the', 'yellow', 'brick', 'road' ]
console.log(sentence.split("the")); // [ 'follow ', ' yellow brick road' ]
console.log(sentence.split("o")); // [ 'f', 'll', 'w the yell', 'w brick r', 'ad' ]
// 2. use the array.join method to turn an array into a string
let words = ["run", "around", "the", "block"];
let sentence = words.join(" ");
console.log(sentence); // 'run around the block'
console.log(words); // [ 'run', 'around', 'the', 'block' ]
console.log(words.join("_")); // 'run_around_the_block'
console.log(words.join("HI")); // 'runHIaroundHItheHIblock'
// _____________________________________
// FRIDAY: Running JS Locally Lesson Learning Objectives
// 1. Match the commands ls, cd, pwd to their descriptions
// ls - lists all the files and subdirectories in the current directory
// cd [path] - changes the current directory to the directory specified by the path argument. (i.e. cd /cats would enter a directory named "cats").
// pwd - short for "Print Working Directory". The pwd command lists the path to your current location in your file system starting from the root.
// 2. Given a folder structure diagram, a list of 'cd (path)' commands and target files, match the paths to the target files.
// See [File Tree] image in Terminal Basics
// 3. Use VSCode to create a folder. Within the folder create a .js file containing console.log('hello new world'); and save it.
// !IMPORTANT
// 4. Use node to execute a JavaScript file in the terminal
// cd into folder then:
// $node filename.js
// _____________________________________
© 2022 GitHub, Inc.
Terms
Privacy
Security
Status
Docs
Contact GitHub
Pricing
API
Training
Blog
About
Loading complete
```