Pre 35기 TWIL

Fourth week: 중구난방, 하나도 모르겠다!

Eva_0401 2019. 8. 18. 17:23

1. 일단 가장 큰 성과는 베이직, 알고리즘을 끝냈다는 것. 그러나 여기서도 모르는 문제들이 태반이다. 제대로 정리하고 싶은데, 코인즈 따라가기가 벅차 그럴 시간이 있을지 의문이 드는 건 사실이다. 하지만 이것 또한 핑계일 뿐이겠지.. 하루가 48시간이었으면 얼마나 좋을까ㅠ.ㅠ

2. 드디어 문서 작업을 완료했다. 별거 아닌 것 같아 보이지만 이 요약집으로 공부할 때 엄청 도움이 되었다. 

 

주차별로 배운 것들을 리뷰해놓았는데, 앞으로도 잊지말고 꼭 해야겠다는 생각이 들었다. 사실 TWIL로도 커버가 가능한 영역이지만, 이놈의 정리병은 이렇게라도 하지 않으면 까먹게 되더라.. 

 

3. 8월 13일, Number/Math Methods, 변수의 전달, 디버깅

  • Number Methods
    • Number.isInteger() 
      • arguments :  정수인지 아닌지 판단
      • return value : 정수를 판단한 결과 (Boolean)
    • parseInt() /parseFloat()
      • arguments : 형변환 하기 위해 파싱된 값
      • return value : 정수또는 소숫점 숫자
      • parseInt(value,radix) : 진법 변환할 때 사용함. radix가 필요없는 10진법 변환일 경우 명시적으로 10을 넣어주는 것을 권장 
    • num.toFixed([digits])
      • arguments : 소숫점 뒤에 나타날 자릿수(반올림 처리, 기본값은 0)
      • return value : 숫자를 나타내는 문자열
  • Math
    • Math.min([v1[,v2..]) 
    • Math.max()
    • Math.floor : 내림
    • Math.round :반올림
    • Math.random()
      • arguments : 없음
      • return value :0과 1 사이의 난수를 반환
  • 변수의 전달
    • Obj나 array는 ===로 비교할 수 없다.
    • 파라미터를 확인하려면 함수 진입 시 확인
    • 변수를 쓸 수 있는 범위가 존재한다1
    • 함수 안쪽에서 값을 바꿔도 바깥쪽 변수에는 영향을 미치지 않는다 but,객체 값이 들어갈 경우 아님!
    • 넘기는 변수의 타입이 무엇이냐에 따라 전달의 형태가 달라진다
      • 문자열(string)을 넘김 => 값을 복사해서 넘김
      • 객체(object)를 넘김 => 참조(주소값)을 복사해서 넘김 ( 객체,배열, 함수)
      • 바로가기 연결과 다른 이름으로 저장이라고 생각하면 된다.

 

4. 8월 15일 

  • greeting ='Hello';
    function greetSomeone(){
    let firstName ='Josh';
    return greeting + ' '+firstName;
    }
    : firstName이라는 변수가 이전에 정의된 적이 없어 에러가 난다.  greetSomeone()안 쪽에 정의가 되어 있기 때문에 접근을 할 수 없다. function 안 쪽은 Local Scope이다.
  • Scope :변수 접근 규칙에 따른 유효 범위
    • 변수는 어떠한 환경 내에서만 사용가능하며, 프로그래밍 언어는 각각의 변수 접근 규칙을 갖고 있다.
      변수와 그 값이, 어디서부터 어디까지 유효한지를 ㅂ판단하는 범위
      •  Rule 1 : Local Scope vs Global
        안쪽 scope에서는 바깥 변수/함수를 접근하는 것 :  가능
        바깥쪽 scpoe에서 안쪽 변수/함수를 접근하는 것 :  불가능
      • Scope는 중첩이 가능하다 - >함수 안에 함수를 넣을 수 있다.
        Gloval Scope는 최상단의 Scope로, 전역 변수는 어디서든 접근이 가능하다. 지역 변수는 함수 내에서 전역변수보다 더 높은 변수를 가진다.
        • Q2 .
        • let name = "Richard";
          function showName(){
          let name = "Jack"; //지역변수 : let 키워드를 이용해 새로 선언. 전역에 선언한 name과는 다른 변수임
          //showName 함수 안에서만 접근가능
          console.log(name); // Jack(2)
          }
          console.log(name);//Richard(1)
          showName();
          console.log(name); //Richard(3)
        • Q3 
        • let name = "Richard";
          function showName(){
          name = "Jack" ; //전역변수
          //선언(let)이 없기 때문에, 바깥 scope에 있는 name변수를 가져온다. 
          console.log(name) ;//Jack
          }
          console.log(name);//Richard
      •  Rule 2 
        • Block : 중괄호로 시작하고 끝나는 단위
          if(true){
          console.log('i am in the block');
          }
        • Q4 : 콘솔에 출력되는 결과는?
          for(let i=0 ;i <5; i++){
          console.log(i); //다섯번 iteration
          }
          console.log('final i:' , i); // ReferenceError 
          : block 범위를 벗어나는 즉시 변수를 사용할 수 없다.