22.06.29 - [ JS ] 형 변환, 연산자, 제어문, 배열, 함수
- Index -
1. Data 형 변환 |
2. 연산자 | 3. 제어문 | 4. 배열 | 5. 함수 |
연산으로인한 형 변환 | == | for, while, do-while | 선언과 초기화 | 선언(익명, 화살표) |
강제 형 변환 | === | for in , for of | 메서드(sort, join) | 매개변수(argument) 리턴(익명함수 리턴) |
1. 데이터 형 변환
1-1. 연산으로 인한 형 변환

1-2. 강제 형 변환


2. 연산자

- 2 == ‘2’ --> true
- 2 === ‘2’ --> false
3. 제어문
- if / switch
- while / do while / for
- for in
- for of (ES6에서 추가 )
3-1 for in
- 배열의 인덱스 값 가지고 온다.

i의값을 출력해보면 인덱스다 0 / 1 / 2 이것을 가지고 접근하는 것
3-2 for of
- 배열 요소의 값 가지고 온다

x 값에 인덱스가 아닌 요소의 값이 들어가 있다..
4. 배열
4-1. 배열 선언 및 초기화

## .addEventListener() 로 출력 테스트 ##

+Tip 배열 안에 있는 함수 실행 시키는 방법
## arr5 요소들 출력해보기 ##

arr5 배열 5번째 들어있는 함수 호출하는 방법은?
배열안에 있는 함수 호출하는 방법은?

빨간색 1번 부분까지만 사용하면 - 배열안에 요소들 출력됨
노란색 2번 부분까지 사용하면 - 배열안에 함수() 호출되어서 실행됨
4-2 배열 메서드
- 메서드/함수 - 구분할 필요는 없다 - 굳이 구분하자면
- 메서드 -> 객체에 붙어있는 애들
- 함수 -> 독립적으로 있는 애들

4-2-1 sort()
- sort() 파라미터로 function(){} 필요
- return 값 필요 - 양수면 내림차순 / 음수면 오름 차순
- 배열에서 요소를 하나씩 다 가져와서 정렬을 한다고 생각

#Tip
- sort() 파라미터 없이 그냥 사용하면 –
- 맨 앞 하나의 문자열을 기준으로 정렬된다. - 사전 순으로 정렬된다.
4-2-2 join()
- arr 배열 안에 있던 모든 요소들이
- , [콤마]로 구분되어서 하나의 문자열로 return 되었다 - 기본

5. 함수
5-1 함수 선언
- #선언적 함수
- #익명 함수
- #자동실행 함수
- #화살표 함수(Arrow Function)
5-1-1 선언적 함수

5-1-2 익명 함수
- ( 변수에 함수를 넣어서 만드는 것 ) - 함수명을 작성하지 않고 변수에 대입
- ## 익명 함수 방식으로 만들어진 변수(함수)를 사용할 때는 선언 밑에 쪽에서 사용 가능

5-1-3 자동실행 함수
- 함수 정의와 동시에 즉시 실행되는 함수
- 한 번만 호출 가능
- 여러 개 실행되게 하려면 제일 밖의 ()부터 다시 사용해주어야 한다.

5-1-4 화살표 함수 ( Arrow Function )
- 람다식

## 화살표 함수 사용하는 이유?
- 간단한 작업에 굳이 함수 안 만들어주기 위해서 – 함수명이 굳이 필요 없어서.
- 함수는 결국 입력 값 / 할 작업 / 리턴 값 만 있으면 된다.

5-2 함수의 매개변수
- 매개변수를 1개만 써도 / 안 써도 / 더 많이 써도 / 실행해준다.


## 만약 전달 못 받으면??
- f01(num1, num2)에서 num2 파라미터 전달 못 받으면?
- 이 파라미터에 기본 값을 설정해 줄 수 있다.
- num2 = 777; 이런 식으로
- 전달받는다면 전달받은 수로 함수 진행된다.
5-2-1 arguments ( 인자 )
- arguments에 우리가 보낸 모든 인자 값이 들어있다는 것이 포인트
- arguments의 요소 하나하나 꺼내와서 작업하는 것~

### 노란 박스 함수 vs 빨간 박스 함수 ###
차이점 체크

# 노란색 함수로 만들어놓으면
- 3개의 인자까지만 받아서 계산된다
- 초과되는 파라미터 값은 arguments 에저장된다
# 빨간색 함수로 만들어놓으면
- 들어오는 인자수에 맞춰서 계산을 해준다.
- 파라미터 값 모두 저장되는 arguments의 length 활용
5-3 함수의 리턴
5-3-1 일반적인 값 리턴
- 우리가 맨날 하던 거

5-3-2 익명 함수를 리턴하는 함수
- 익명함수 : 함수의 이름이 없는 함수

1번 - getAnonyMousFunc() 함수 실행
2번 - return 값인 익명함수를 return
3번 - 함수 실행 결과 return값인 익명함수를 result 변수에 대입
4번 - 익명 함수가 들어있는 reault 출력 - 익명함수가 출력된다.

5번 - 익명함수가 들어있는 result 실행 - result() - 익명함수 실행되어서 알람 뜸

왜 굳이 이렇게 사용하냐?
- JS에 접근 제한자 있는지 질문이 있었다.
- JS에서는 변수가 전부 다 java - public과 같다.
- 함수를 리턴하게 되면- private로 처리하는 효과 가능
- java에서 private 해놓고 getter / setter 방식..
- JS에서는 getter / setter 익명 함수 리턴 방식으로 접근하도록 해주는 것
클로저 효과
- 현재 함수에 외부에 있는 변수를 내부 함수가 참조하고 있을 경우
- 내부함수가 살아있기 때문에 외부 변수도 살아있는 것이다. - 살아있게 해 주는 것이 클로저
- 외부 함수가 끝나면 외부 변수가 없어지는 것이 맞지만
- 클로저 효과로 내부 함수가 죽어야 외부 변수도 죽는다.
- 클로저 사용하는 이유 : private처럼 효과 주기 위해서