입력 - 연산 - 출력
사용자에게 콘솔이나 UI를 통해 입력받은 데이터를 잘 처리하고 연산해서 알맞게 다시 사용자에게 출력해주는 것이 가장 중요하다. 이런 연산을 통해서 CPU를 효율적으로 사용할 수 있도록 CPU에 최적화된 로직을 작성하는 것도 중요하고 메모리를 최소화해서 사용하는 것도 중요한 포인트이다.
더이상 작은 단위로 나눠질 수 없는 타입
변경 불가능한 값(immmutable value)
값이 할당되어 있으나 비어있음
`typeof null` 이 객체인 이유
자바스크립트의 typeof 키워드에서 `null` 에 대한 예외처리가 되어있지 않은 버그가 있었지만
typeof를 사용하는 모든 웹 사이트에 영향을 끼칠수 있기 때문에 수정되지 않고 있다고 한다.
따라서 `typeof null`은 객체이다.
원시 타입 이외의 모든 값
변경 가능한 값(mutable value)
primitive 데이터들을 여러개 묶어서 한 단위로 관리할 수 있게 해준다.
{ key1: value, key2: value }
의 형태로 표현되며 value
에는 모든 자료형의 값이 들어간다.
key를 통해 객체에 있는 value(값)을 얻을 수가 있다.
obj.key
obj['key']
예시
const person = {
name: '김정은',
age: 30
}
person.name;
// Print: '김정은'
person['name'];
// Print: '김정은'
위와 같은 식으로 객체 안의 value값을 얻어낼 수 있다.
const person = {
name: '김정은',
age: 30,
'raising dog': '코코',
}
하지만 변수에 여백이나 (-)기호 등 옳지 않는 식별자가 들어갔을 경우 person['raising dog']
으로만 표현해야 한다.
[value, value2, value3]
의 형태로 표현하며, value
에는 모든 자료형의 값을 담을 수 있습니다.Array
입니다.비유하자면 책의 목차(Index)에 있는 페이지 수와 같으며, 목차를 보고 해당 페이지를 펼치면 원하는 내용(value)을 볼 수 있는것과 같습니다.
Index의 최소 값은 0입니다.
const names = ['강승현', '홍길동', '김아무개'];
names[0];
// Print: '강승현'
names[2];
// Print: '김아무개'
names[3];
// Print: undefined
🔆 argument = 전달인자 = 값 = 인수
plusNumber(1,2);
// 전달인자 1, 2
함수가 호출될 때 값을 전달한다고 해서 전달인자라고도 부른다.
매개변수와 달리 전달인자는 고정되어 있지 않고, 호출할 때마다 수시로 변하기 때문에 변수가 아닌 값(Value)이다.
인수라고도 한다.
🔆 parameter = 매개변수 = 변수 = 인자
function plusNumber(a,b) {
return a+b;
}
// 매개변수 a, b
함수가 호출되면서 건네준 argument의 값이 담기는 함수 내부에 있는 변수이다. 이 곳에 인자가 담긴다.
들어오는 인자가 매개체 역할을 한다고 해서 매개변수라고도 한다.
const sum = function(a, b) {
return a + b;
};
sum (1, 2)
a와 b라는 파라미터에 전달인자인 1과 2를 명령문 a + b에 대입해 그 값을 반환해라
const sum = (a, b) => {
return a + b;
};
function 대신 =>로 변경
const sum = (a, b) => a + b;
{ }와 return 생략
const hello = a => {
return a;
};
hello('hi'); // hi
파라미터가 하나인 경우 ( ) 생략 가능
타입을 명시하지 않고 런타임시 변수의 타입이 결정되기 때문에 에러가 난 채로 코드를 배포하고 서버에 문제가 생긴다.