----프론트 예제
변수명이랑 같으면 생략 가능함
a = 1; b= 1;
a, b
a=1; b=1;
타자를 하나 칠때마다 이벤트 처리할 것임
$control.on('input', funtcion(e) {}
pristine 깨끗한 (공란)
- 바인딩
- => 화살표 함수
-----------------------------------------
1. 함수 = First Class Citizen = (일급객체, 일급시민) 라는 말을 이해한다.
2. 함수를 인자로 받고 함수를 결과로 반환하는 것에 익숙해진다.
= 1번은 2번이다.
3. call, apply, bind에 익숙해진다. (때때로 쓰지만 알고 있어야한다)
4. 함수 안에서 사용 가능한 키워드와 익숙해진다.
* First Class
1. 인자로 함수를 받을 수 있다.
2. 함수를 결과로 반환할 수 있다 (return)
3. 함수를 변수에 지정할 수 있다.
- 인자로 함수를 받는 함수
- 함수를 반환하는 함수
- call, apply, bind
this의 바인딩을 결정할 수 있다.
- call
function.prototype
모든 함수는 call에 대한 참조를 들고있다.
프로토타입 , 프로토타입 체인을 통해 모든 함수는 call에 대한 참조를 들고있다.
.call('this',a,b) == this로 사용할 값
-this
그때 그때 사용할 값
1.this는 어떻게 함수가 호출됐느냐에 따라 결정된다.
2. default callback은 global객체이다.
* use strict를 쓰면 default가 global로 안된다
3. 생성자 호출로 호출된 경우, 만들어진 객체가 this
4. call, apply, bind를 이용하면, 우리가 this로 사용될 객체를 정할 수 있다.
5. 비동기 호출에서의 this를 조심하라
-apply
call은 콤마로 선언하는데
apply는 배열로 선언을 한다. call과 비슷하다, 거의 똑같다. 호출방식만 다름 == .과 배열
- bind
Implicit Binding 묵시적 바인딩
bind()도 첫번째로 쓰는게 this로 사용할 것을 정의한다.
(this) 바인딩을 바꿔서 넣음,,, bind를 써서 this를 바꾼 것 같다 ....
this가 잘못되어 윈도우로 찍힐 수 있을경우도 있어서
.bind(this) 정의될 시점의 바인드를 쓰면 제대로 this가 찍힌다.
혹은 =>함수를 써도 그 시점의 this를 쓰기 때문에 윈도우로 찍히지 않는다.
- arguments
자바스크립트는 다른 언어와는 다르게 매개변수와 인자값이 달라도 오류를 나타내지 않습니다.
그렇기 때문에 arguments라는 유사배열이 존재하게 됩니다.
function sum() {}
console.log(sum(1,2,3,4));
위에 sum(){} 함수는 매개변수를 받지 않고 있습니다.
그렇게 아래 sum() 함수를 호출하는데 인자값을 넣어주고 있습니다.
1,2,3,4라는 인자값을 넣어주는데 javascript내에서는 오류를 나타내지 않습니다.
for (var i = 0; i < arguments.length; i++) {}
for 문 안에서 argument.length에서는 인자값의 갯수를 반환합니다.
-use strict
Strict Mode의 선언 방식입니다.
이 문구는 ES5부터 적용되는 키워드로, 안전한 코딩을 위한 하나의 가이드라인 입니다.
- Strict Mode의 장점
흔히 발생하는 코딩 실수를 잡아내서 예외를 발생시킵니다.
상대적으로 안전하지 않은 액션이 발생하는 것을 방지합니다.
정확하게 고려되지 않은 기능들을 비활성화 시킵니다.
es6 모듈을 사용할 경우 기본적으로 정의되어 있습니다.
- arguments reference
https://blog.naver.com/fb_lua/221455227071
- use strict reference
https://ithub.tistory.com/162
'공부' 카테고리의 다른 글
190404 행아웃 (0) | 2019.04.04 |
---|---|
190327 2차시 행아웃 OOP(객체 지향 프로그래밍) (0) | 2019.03.28 |
190320 1차시 과제 정리 (0) | 2019.03.23 |
190320 1차시 행아웃 - evaluation, identifier, expression, 프로퍼티에 접근하는 방법 (0) | 2019.03.23 |
190316 1차시 수업내용 - javascript 개괄, prototype, Form Component (0) | 2019.03.16 |