공부

190323 2차시 수업내용

----프론트 예제


변수명이랑 같으면 생략 가능함

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