Twilio Quest
- https://www.twilio.com/quest
- TwilioQuest is an educational video game designed to teach a new generation of developers how to change the world with code.
- From learning how to use your terminal, to coding in Python, JavaScript, and contributing to Open Source projects, TwilioQuest will help you develop practical engineering skills.
Process.argv
- Get input string from the console.
- Output is string array.
const argumentValue = process.argv[2];
const treeLifeStatus = Number(argumentValue);
if(treeLifeStatus == 0)
    console.log("alive");
else if(treeLifeStatus == 1)
    console.log("flowering");
else if(treeLifeStatus == 2)
    console.log("shedding");
else
    console.log("other");String
- localCompare- Get compared result by number(-1, 0, 1) with specific language and options.
 
const firstValue = process.argv[2];
const secondValue = process.argv[3];
console.log(firstValue.localeCompare(secondValue, 'en', { sensitivity: 'base' }));Type Casting
- string => int, float, double … : Number
- int, float, double … => string : String
Number
- In javascript, you don’t need to separate Number Type.
- int, float, double, log and etc. are all Number.
const numberInput = Number(process.argv[2]);
let output = '';
if (numberInput % 3 == 0) {
  output += 'Java';
}
if (numberInput % 5 == 0) {
  output += 'Script';
}
if (output == "") {
  output = String(numberInput);
}
console.log(output);Array
- map: mapping result from array.
function mutate(freightItems){
    let mutatedItems = [];
    mutatedItems = freightItems.map(item => item.toUpperCase());
    return mutatedItems;
}
const mutated = mutate(['dog', 'ray gun', 'cat']);
console.log('Mutated Items');
console.log(mutated);- reduce: add result from the array. You can also set initial value.
function calculateMass(freightItems){
    let totalMass = 0;
    totalMass = freightItems.reduce((sum, current) => sum + current.length, 0);
    return totalMass;
}
const mass = calculateMass(['dog', 'donkey', 'cat']);
console.log('Total mass of items is ' + mass);- slice: slice array with specific indexes.
function getFirstAmountSorted(inputArray, numberOfItems) {
    inputArray.sort();
    let outputArray = [];
    if(numberOfItems > 0)
        outputArray = inputArray.slice(0, numberOfItems)
    return outputArray;
  }
  
const newArray = getFirstAmountSorted(['cat', 'apple', 'bat'], 2);
console.log(newArray);- filter: filter array with specific function.
function scanAndFilter(freightItems, forbiddenString) {
    let filteredItems = [];
  
    filteredItems = freightItems.filter((item) => {
      return item !== forbiddenString;
    });
  
    return filteredItems;
  }
  
  const filtered = scanAndFilter(
    ["dog", "ray gun", "cat", "zippers", "ray gun"],
    "ray gun"
  );
  console.log("Filtered Items");
  console.log(filtered);Class
- Classcan reduce code and make it more reuseable.
Constructor
- constructorcan initialize members and methods.
Function
- When you create function in class, you shouldn’t type function.
class Materializer{
    constructor(targetName){
        this.target = targetName;
        this.activated = false;
    }
    activate(){
        this.activated = true;
    }
    materialize(){
        if(this.activated) return this.target;
        return undefined;
    }
}