잘 작동하는 소프트웨어를 만들기 위해서는
"목적에 맞는 간결한 코드를 바르게 작성"해야 한다.
-> 이를 위해 기초 문법을 확실히 익혀두기
(❌는 수업에서 자세히 설명하지 않은 내용 -> 스스로 찾아내기)
1. 변수
- 메모리 = 여러 개의 보관함을 가진 하나의 큰 저장소
- 변수 = 어떤 값(데이터)을 저장해두는 보관함의 이름
🔎 Acheivement Goal
✅ 변수는 데이터를 편리하게 저장하고 꺼내쓰기(재사용) 위함을 이해
✅ 변수의 선언과 값의 할당에 대해서 설명하고 코드로 작성
✅ 변수 선언과 값 할당에 사용되는 용어에 대해서 정확하게 이해
1. 변수의 선언(declaration)
: 내가 사용할 보관함에 이름표(변수) 붙여서 데이터 보관할 공간 확보
-> let 변수
2. 값의 할당(assignment)
: 확보된 보관함에 데이터 저장
-> 변수 = number (or 'string' 등등)
3. 선언과 할당을 동시에도 가능
-> let 변수 = number (or 'string' 등등)
1. 재선언 불가
let sol = 1
let sol = 2 (X)
2. 재할당 가능(mutable)
let sol = 1
sol = 2 (O) // 재할당할 경우에는 let 생략
1. 재선언 불가
const sol = 1
const sol = 2 (X)
2. 재할당 불가능(immutable)
const sol = 1
sol = 2 (X)
2. 타입
🔎 Acheivement Goal
❌ 자바스크립트에서 원시 자료형과 참조 자료형이 무엇인지 앎
✅string
,number
,boolean
,undefined
의 의미를 이해
❌ 타입마다 다른 속성과 메소드가 있다는 것을 이해
❌typeof
를 활용하여 특정 값의 타입을 확인
메소드 : 어떠한 입력값을 받아 "무언가 한 다음" 결과를 도출해내는 함수와 비슷한 개념으로, 클래스(유사한 특징을 지닌 객체들의 속성을 묶어 놓은 집합체) 내 에서 함수처럼 작용한다.
(+ 자료형 객체와 클래스의 객체는 다른 개념... 멈춰! 지금 단계에서는 tmi)
원시 자료형과 참조 자료형 개념
원시 자료형과 참조 자료형을 구분하는 이유
3. 함수
논리적인 일련의 작업을 하는 하나의 기능 단위이자, 코드의 묶음(즐겨찾기처럼 사용)
🔎 Acheivement Goal
✅ 함수 선언에 필요한keyword
,name
,parameter
,body
이해
✅매개변수(parameter)
와전달인자(argument)
를 구분해 사용
✅ 함수를 실행한 결과값(우변)이 변수(좌변)에 할당되는 과정을 설명
✅ 함수 그 자체func
와, 함수의 호출func()
를 구분하여 사용
❌ 같은 기능의 함수를선언식
,표현식
,화살표
함수로 바꾸어 표현
매개 변수( Parameter )
: 그 전달된 인자를 받아들이는 변수인자( Argument )
: 어떤 함수를 호출시에 전달되는 값: 쉽게 말해 "끌어올린다"는 뜻. 자바스크립트 엔진은 우선 코드를 위에서부터 읽어내리며 script 태그를 찾고, 이에 선언된 변수와 함수를 메모리에 저장한다. 이러한 과정이 완료된 후에야 저장된 코드가 위에서부터 차례대로 실행된다. 덕분에 자바스크립트에서는 변수나 함수를 코드의 하단부에서 선언하였어도, 코드의 상단부에서 해당 함수를 호출=실행할 수 있다는 특징이 있다.
ssolcode(); // 상단부에서 호출(호이스팅)
function ssolcode() {
return('hello');
} // 하단부에서 선언된 함수를
<case 1>
const ssolcode = function () { return('hello') };
// 상단에서 변수 ssolcode에 익명의 함수 할당
ssolcode(); // 하단에서 함수 호출
<case 2>
const ssolcode = function funcName() { return('hello') };
// 상단에서 변수 ssolcode에 funcName이라는 이름의 함수 할당
ssolcode(); // 하단에서 funcName(함수명)이 아닌 ssolcode(변수명)으로 함수 호출
<표현식>
const ssolcode = function(name, age) {
return name + age };
<화살표>
const ssolcode = (name, age) => (name + age)
function multiplyBy2(input) {
input = input * 2;
return input;
} //선언문 세미콜론 생략
let divideBy2 = function(input) {
input = input / 2;
return input;
}; //표현문 세미콜론 입력