스나이퍼팩토리 한컴AI 개발자 교육- Intro to Javascript
intro to js.
- Negative Zero == Positive Zero
- Symbol?
- Dynamic Typing (타입 관련 오류를 런타임에만 발견할 수 있음)
- bigInt 는 자기들끼리만 연산 가능
- ` `` ` 벡틱안에는
${}
변수를 넣을 수 있다. - 웬만하면
===
쓰기 타입까지 검사 []
and.
operator 의 차이점: 공백이 있는 속성은.
operator로는 못불러온다- Object 를 Shallow copy 했을 경우에 최상위 속성만 copy by value, nested 속성는 reference 로 복사
- … (spread operator): shallow copy
- function 을 object 처럼 다룸: 1) function 안에 function 을 부를 수 있고, 2) function을 객체의 속성으로 쓸 수 있고 3) function 을 다른 function으로 call 할 수 있다.
function alpha(x) { //x = beta const result = function (y) { return x(10) + y; }; return result; }; function beta(z) { return z; }; console.log(alpha(beta)(4));
- private 변수는 맨 앞에
_
붙히기
질문1) 왜 굳이 function 불러서 get name 하는지 질문 2) 위의 코드 실행 순서 질문
- function factory ``` JavaScript function multiplyBy(factor) { return function (number) { return number * factor; }; } const double = multiplyBy(2); const triple = multiplyBy(3);
console.log(multiplyBy(2)(5)); console.log(double(5)); // 위 두개 line 같은 결과 출력 console.log(triple(5)); console.log(multiplyBy(3)(5)); // 위 두개 line 같은 결과 출력
1
2
3
4
5
6
- JavaScript 에서의 데이터 은닉
```JavaScript
function createPerson(name) {
let _name = name;
}
Asyncronized programming
closure 의 정의
namespace: 함수들을 모은 객체를 모은 집합
::
arrow function을 쓰면 내부에서 this값을 쓸 때 밖에 있던 this값을 그대로 사용합니다.
여러분 함수를 쓸 때.. 함수가 쓰인 위치에 따라서 내부의 this값이 변한다고 저번시간에 배웠습니다.
근데 arrow function은 어디서 쓰든간에 내부의 this 값을 변화시키지 않습니다.
그러니까 바깥에 있던 this의 의미를 그대로 내부에서도 사용하는 함수가 바로 arrow function 이라는 함수입니다.
(이게 장점 4이자 arrow function을 쓰는 핵심 이유입니다.)
예시를 봅시다.
var 오브젝트1 = {
함수 : function(){ console.log(this) }
}
오브젝트1.함수() 위의 코드는 실행하면 무슨 결과가 나올까요?
this값을 출력하라고 하네요. this가 뭘까요?
저번시간에 한 것이기 때문에 아시겠지요 (아마?)
함수()를 가지고 있는 오브젝트인 오브젝트1이 콘솔창에 출력될 것입니다.
그럼 이건요?
var 오브젝트1 = {
함수 : () => { console.log(this) }
}
오브젝트1.함수() 위의 코드는 실행하면 무슨 결과가 나올까요?
window라는게 출력됩니다.
여기선 this가 window네요.
왜 함수의 주인인 오브젝트1이 출력되지 않냐면..
this값은 함수를 만나면 항상 변하는데 arrow function 안에서는 변하지 않고 밖에 있던 this를 그대로 씁니다.
(오브젝트 밖에 있던 this는 window입니다.)
왜냐면 arrow function은 외부에 있던 this를 그대로 내부로 가져와서 사용하는 함수기 때문입니다.
항상 장점은 아닙니다. 내가 예측하던 this값과 달라질 수도 있으니 단점이 될 수 있습니다.
끝입니다. 더 알것도 없어요.
이제 개발하실 때 심심하시면 arrow function 열심히 사용하시길 바랍니다.
하지만 this의 뜻이 달라지는 것 처럼 일반 function과 용도가 완전 같지 않기 때문에
일반 function을 항상 대체할 수 있는 문법이 아닙니다. 그것만 주의합시다.