180911 TIL Lec1 다각형의 넓이

» 1막, TIL (Today I Learned)

기본문법

  • toString.call(x): typeof는 어떤 객체의 인스터스인지 정확히 알려주지 않는 것이 단점인데, toString.call(x)를 이용하면 극복. but 성능 느림
  • 분기: 프로그램 실행순서를 변경하여 다른 명령을 실행할 수 있게 하는 일 = swtich가 그 기능을 함

함수

  • 함수선언문 vs 함수표현식
     ///함수선언문
     function test() { 
      console.log(printName()); 
       function printName() {
          return 'anonymous';
      }
    }
    test() //anonymous 
    
 ///함수표현식
 function test() { 
    console.log(printName()); 
    var printName = function() {
        return 'anonymous';
    }
}

test();
//TypeError: printName is not a function

함수표현식은 변수값에 함수를 담아놓은 것

 ex. var inner = function ();

함수표현식으로 표현하면 함수선언문과 달리 선언과 호출순서에 따라 정상적으로 함수가 실행되지가 않는다. <- 호이스팅 때문

  • 호이스팅: 함수 실행전 함수 안에 필요한 변수값들을 미리 모아서 선언
    ES6부터 let, const를 사용하면 호이스팅을 막을 수 있다.
function test() { 
    console.log(printName()); 
    const printName = function() {
        return 'anonymous';
    }
}

test();
//ReferenceError: printName is not defined
  • 1부터 무한대까지 인자를 받아 합을 구하는 함수 만들기
 function add(a, b) {
            let sum = a;
            for (i = a; i < b; i++) {
                sum += i;
            }
            return console.log(sum);
        }
add(1,10);
  • arrow function (간지)
function getName(name) {
   return "Kim " + name ;
}

//위 함수는 아래 arrow함수와 같다.
var getName = (name) => "Kim " + name;

재귀

아직 잘 모르겠음. 맥락은 알겠는데 어떻게 사용해야할지…

퀴즈 풀이

기타



내 페이스대로! Remember Sara-


9/12(Wed) To-Do

  1. 최대공약수 코드에서 새로운 문법 사용한 것 익히기 ```javascript /// 두 배열에서 겹치는 값 삭제 let cd = firstNumber.filter(function (val) { return secondNumber.indexOf(val) != -1; });
```javascript
/// 두 배열에서 큰 값 출력 
    var gcd = cd[0];
        for (i = 0; i <= gcd; i++) {
            if (cd[i] > gcd) {
                var gcd = cd[i];
            }
        }

  1. 알고리즘 수업(10:30-12:30)
  2. Lecture1 배열~Step1까지하고 PR보내기