변수의 선언과 값을 할당
변수의 타입 : 변수에 할당할 수 있는 형태 (원시 자료형, 참조 자료형)
함수
변수 선언 (공간에 이름), 할당 (공간에 값을 넣는 것)
let 변수 = 값, 변수 = 값;
변수
변수의 선언과 값의 할당
프로그래밍
- 데이터를 처리하는 것
- 컴퓨터에게 원하는 처리 방법을 명령하는 것
변수
- 데이터를 다루는 방법 중에 하나
- 변수를 관리하면 효율을 꾀할 수 있다

변수와 타입
변수
선언
- let 변수명;
- let 키워드를 이용
- 선언은 한번만 할 수 있다
- 선언만 하고 할당이 안되면 undefined라는 값을 가진다 (정의되지 않았다는 의미)
할당
let myname;
myname = Steve;
let myname = Steve;
표현식
- 변수와 특정 값을 이용해서 연산을 하는 것
- 변수를 이용해서 값을 표현하는 식
- 결과물을 다시 변수로 담을 수 있다
정리
변수
선언
- 컴퓨터 메모리에 사용할 공간을 지정
- 공간을 부를 이름을 지정
- 값을 할당하기 전에는 undefined
- 선언은 한 번만 할 수 있다
할당
- 선언을 통해 확보한 공간에 값을 넣는 과정
- 선언으로 설정한 이름을 이용해 할당된 값을 사용할 수 있다
- 선언과 할당은 동시에 할 수 있다
표현식
- 변수를 이용해서 계산하는 식
- 식에서 변수를 값으로 변환하고 결과를 계산할 수 있다
타입
- 변수에 할당할 수 있는 형태, 변수의 형식
- 타입마다 다른 속성과 메서드가 있다
- typeof 값 : 값의 타입을 확인할 수 있다
- 종류 : 문자열, 숫자, 불리언, undefined, 배열, 객체, 함수
원시 자료형과 참조 자료형
원시 자료형
- string : 문자열
- number : 소수, 정수 등 세부 타입이 있다
- boolean (불리언, 불린): true, false
- undefined : 타입이다
참조 자료형
정리
타입
- 변수에 할당할 수 있는 형태, 변수의 형식
- 원시 자료형
- (문자열, 숫자, 불리언, undefined)
- 참조 자료형
함수
- 정의
기능의 단위
- 입력에 따라 작업을 하는 하나의 단위
- 작고 간단한 문제를 하나씩 해결해 전체적으로 크고 복잡한 문제 해결
- 구성
- keyword
- name
- parameter
- body
- 선언과 호출
- 선언
- 변수 선언, 함수 표현식 할당
- 함수의 결괏값이 변수에 할당되어 담기는 과정을 설명할 수 있다
- 선언식, 표현식, 화살표 함수
- 호출
- 리턴
- 함수 자체와 구분 필요
- 매개변수(parameter)와 전달인자(argument)
함수 선언과 호출
-
함수란
기능의 단위
코드의 묶음
입력과 출력의 매핑
리턴 값을 가진다
-
선언 (declaration)
함수를 제작하는 과정
- 메모리에 정의한 이름의 공간이 지정된다 (선언)
- 공간에 작성한 함수 내용이 들어간다 (할당)
- 구성 요소
- keyword : function
- name : 함수 이름
- parameter : 매개변수 / argument : 실제로 넣는 값
- body : 함수 정의 시 작성한 코드 묶음
-
호출 (call)
함수 이름()
- 메모리에 저장된 함수를 조회한다
- 전달한 인자 값으로 매개변수가 대체된다 (파라미터 평가)
- 바디가 순차적으로 실행된다
- 함수가 리턴하면 호출된 장소로 돌아간다
- 변수에 함수 리턴값을 담는 경우, 메모리의 지정된 공간에 값이 할당된다


함수 선언 방법
선언
선언 방법 (3가지)

- 화살표 함수
- 표현식을 기반으로 한다
- body에 return문만 있으면 return, 중괄호 생략 가능 / return 없이 소괄호 사용 가능
- 두줄 이상이면 return, 중괄호를 명시적으로 사용하는 것이 좋음

function getRectangleArea (width, height) {
return width * height;
}
const getRectangleArea = function(width, height) {
return width * height
}
const getRectangleArea = (width, height) => {
return width * height
}
const getRectangleArea = (width, height) ⇒ width * height;
const getRectangleArea = (width, height) ⇒ (width * height);
정리
정의
- 기능의 단위
- 입력과 출력 매핑
- 코드의 묶음
- 리턴값이 있다 (return이 없으면 undefined를 반환)
구성
- keyword : function
- name : 함수 이름
- parameter : 매개변수 / argument : 실제 입력하는 값, 인자
- body : 코드 묶음
- return : 돌려주는 값
선언
- 메모리에 설정한 함수 이름으로 된 공간 지정
- 공간에 함수 내용 할당
- 방법 3가지
- 선언식
function 함수이름(매개변수){
매개변수를 이용한 코드
return 리턴값
}
- 표현식
const 변수 = function(매개변수){
매개변수를 이용한 코드
return 리턴값
}
- 화살표 함수
const 변수 = (매개변수) => {
매개변수를 이용한 코드
return 리턴값
}
const 변수 = (매개변수) => 리턴값
호출
- 메모리에서 해당 함수를 조회한다
- 함수 안 매개변수를 매개변수에 넘겨준 인자 값으로 대체한다
- 바디를 모두 실행한 결과값을 리턴한다
- 변수가 있는 경우 변수에 함수 결과값을 할당한다
코드 학습법
- 구글링
- 크롬 개발자 도구 (developer tools)
구글링
- mdn
- mdn은 자바스크립트 레퍼런스 문서, 가장 정확함
mdn 키워드 검색
- mdn 문서를 보는 법
-
자연어 영어 문장으로 검색하기
ex. how to convert to string in javascript
신뢰할 수 있는지 알 수 없음
검색 결과에서 키워드를 얻어서 mdn + 키워드로 검색하기
검색 결과 상단에 나오는 키워드로 다시 검색
- 에러 발생 시 에러 자체를 검색하기 (stack overflow)
크롬 개발자 도구
- 오픈
- 탭
- elements
- console
- sources
- network
- extension
조건문
- truthy, falsy
- 비교연산자 (===, ! ==)
- if, else if, else
- &&, ||, !
조건문 기초
불리언 타입
조건문
- 어떤 조건을 판별하는 기준을 만드는 것
- 반드시 비교 연산자가 필요하다

비교 연산자
- <, >, === : 부등호, 등호
- 비교의 결과는 늘 불리언 (true, false)

=== vs ==
- === : equal sign 3개는 무조건 같아야
- == : 예외케이스가 많음 (아래 보기)

ex. 1 == ‘1’, 1 == true, null == undefined, [1] == true

논리 연산자
- 교집합 : && (and 연산자) ex. true && true일 때만 true
- 합집합 : || (or 연산자) ex. false || false일 때만 false
- not 연산자 : truthy, falsy 여부를 반전시킨다 ex. !false : true, !(3>2) : false, !undefined : true, !’Hello’ : false, ‘’: falsy
falsy
- false
- null
- undefined
- 0
- NaN
- ‘’
정리
불리언
- true, false
- falsy한 값
- null
- undefined (cf. undefined는 원시 자료형, 즉 타입. 함수의 리턴값이 없으면 undefined → 함수 이름이라는 변수를 선언했는데 할당할 값이 없는거니까)
- ‘’ (cf. ‘’가 아닌 모든 문자열은 truthy)
- 0
- NaN
- false
조건문
if(기준1){
} else if (기준2){
} else {
}
비교 연산자
- === : 정확한 비교
- == : 느슨한 비교, truthy, falsy 기반 비교 ex. 1 == ‘1’, 1 == true, null == undefined, [1] == true
논리 연산자
- && : and 연산자, 교집합 - 둘다 true여야 true
- || : or 연산자, 합집합 - 둘다 false여야 false
- ! : not 연산자 - falsy, truthy 기준으로 반대
문자열
-
모든 글자의 나열
-
‘ 또는 “”를 사용해서 문자열 구분
-
문자열 : string
-
문자 하나 : character (축약어 : char)
-
length, 접근, 합, slice, substring, 대/소문자, 문자의 index, 포함 여부 확인, 배열로 바꾸기, 다시 문자열로 바꾸기
문자열 메서드
과제
- trim
- 공백문자 탭문자(\t) carriage return(\r\n) return 문자(\n)
- match
- replace
- 정규 표현식
반복문
- 기본적인 for문 (
for (let i = 0; i < 5; i++)
)
- for와 while의 차이
- 반복문에 조건문을 적용
- 이중 for문
같거나 비슷한 코드 여러번 실행 시 사용 구문
for문

for vs while

break vs continue
디버깅
- 유닛 테스트
- 독립적인 경우의 수를 생각하고 하나하나 테스트
- 하나씩 기대값과 실제값을 비교하는 것
- 테스트 주도 개발

코드 스타일링
- 에러 디버깅 시 용이
- 가독성 → 소통 시간 단축
- 규칙들
- 들여쓰기
절대 탭과 스페이스를 혼용하지 않기
cf. 알고리즘