190709-TIL

Today I Learned

  • 오전에 프로젝트 기능 분석, 컴포넌트 분리에 대해 회의를 진행했다.
  • 오후에 이력서 특강을 들었다.

이력서 특강 요약

190708-TIL

Today I Learned

TEST

  • Wrapper Object

    1
    2
    3
    4
    'string'.length; // 6
    const s = 'super'
    String.prototype.sayHi() = () => { console.log('Hi') };
    s.sayHi(); // 'Hi

    문자열을 객체처럼 사용할 경우 JavaScript 엔진이 순간 String 생성자 함수로 wrapping 한다.

  • Property Key

    • Property Key 동적 생성
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var obj = {};
    var key = 'hello';

    // ES5: 프로퍼티 키 동적 생성
    obj[key] = 'world';
    // ES6: 프로퍼티 키 동적 생성
    // var obj = { [key]: 'world' };

    console.log(obj); // {hello: "world"}
    • Property Key는 문자열이나 symbol 값 이외의 값을 사용하면 암묵적 타입 변환을 통해 문자열이 된다. 예를 들어, 프로퍼티 키로 숫자 리터럴을 사용하면 따옴표는 붙지 않지만 내부적으로는 문자열로 변환된다.
    • Property Key로 객체를 사용해도 error가 나지 않고 들어감. 배열도 마찬가지
      Property Key
    • 객체는 [object Object]라는 String으로 변환된다. obj[string]이 되어야하기 때문에 [] 내부는 문자열로 강제 형변환된다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    const a = {};
    const b = { key: 'b' };
    const c = { key: 'c' };

    // 두 객체 모두 Property key로 쓰일 때 문자열 [object Object]로 변환되어 같은 key가 된다.
    a[b] = 123;
    a[c] = 456;

    console.log(a[b]);

    Object property key

    • Property Key를 중복 선언하면 나중에 선언한 Property가 이전 것을 덮어씀
  • call, apply method는 함수에 this를 전달하고 호출하지만 bind는 this를 전달한 함수를 return한다.

  • Function literal과 Function declaration statement의 차이

    • 함수 이름이 있는 함수 선언문은 자바스크립트 엔진이 함수명과 동일한 식별자를 생성하고 생성한 함수 객체를 할당한다.
    • 함수 이름이 필수가 아닌 함수 리터럴은 그저 평가되어 함수 객체를 생성한다. 이를 괄호로 감싸면 에러 없이 함수 객체가 된다.
      1
      2
      3
      4
      // 즉시 실행 함수로 함수 리터럴을 사용하는 경우
      (function () {
      ...
      })()

190706-TIL

Today I Learned

  • Anguler Reactive Form을 이용해서 Netflix 회원가입과 로그인 Form을 Validation까지 구현했다.
  • FastCampus Final Project로 Netflix를 클론하기로 했다.
  • CSS 작업은 늘 어렵다. 그래도 transition과 box size를 잘 이용하면 뭐가 되긴 된다..

🎆 Subin Angular Netflix Form

190701-TIL

Today Test

[오답]

  • 식별자를 검색했을 때 없으면 ReferenceError지만 Property를 검색했을 때 없으면 error가 아니고 undefined를 리턴

  • 함수가 아닌 것에 () 붙여 실행하면 TypeError (SyntaxError 아님!!!!!!)

  • undefined 값에 method 실행해도 TypeError

  • typeof 배열은 object

    1
    2
    3
    4
    function getAge(...args) {
    console.log(typeof args);
    }
    getAge(20);
    • Spread operator …가 argument에서 사용되면 Object나 Array를 풀어서 함수의 argument로 전달

    • Rest parameter … 를 사용하면 풀어진 argument를 하나의 배열로 받음

  • ‘use strict’

    1
    2
    3
    4
    5
    function getAge() {
    'use strict';
    age = 20;
    console.log(age);
    }

    ‘use strict’ mode가 아닐 때는 키워드 없이 선언한 변수를 암묵적 전역 변수로 등록하지만, ‘use strict’ mode에서는 식별자를 찾고 없으면 ReferenceError 발생

Angular HttpClient

  • 어떤 element의 값으로 일을 하고 그 값을 수정해야할 때 ngModel 양방향 바인딩 사용

190628-TIL

FDS12 School Hackaton

패스트캠퍼스에 들어오고 두 번째 해커톤을 마쳤다. 총 10개 팀 중 3개 팀을 수상했는데 우리 팀이 인생을 바꾸는 작은 유용함 상을 수상했다. 각 스쿨의 매니저분들이 엑셀 파일로 학생 관리를 하는 불편함을 해소하고자 학생 관리 툴을 웹으로 옮겼다. 페어 해커톤이 아닌, 전체 스쿨 해커톤으로 백엔드와의 협업을 하고 싶었으나 전날 백엔드 팀이 빠지게 되어 프론트엔드 세명으로만 프로젝트를 진행했다. Angular Form을 사용해서 login 기능을 구현하고 싶었는데 아쉬웠다. 기대가 별로 없었는데 입상을 해서 기분이 좋았다. 앞으로 Final 프로젝트가 하나 남았다.

IWAM on Devpost

IWAM Github

190624-TIL

Today I Learned

  • ToastUI를 JavaScript와 Angular로 구현했다.
  • window.pageYOffset은 wiondow.scrollY보다 cross browsing에 적합(IE 9 지원)하므로 pageYOffset을 사용하는 게 좋다.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×