매개변수와 인수
선언할 때는 parameter (매개변수), 호출할 때는 argument (인수).
function a(parameter) {
console.log(parameter);
}
a('argument');
// > argument
함수를 호출 할 때 parameter = ‘argument’ 가 실행된다고 볼 수 있다.
매개변수와 인수를 여러개 둬도 된다
function a(w, x, y, z) {
console.log(w, x, y, z);
console.log(arguments);
}
a('Hello', 'Paramenter', 'Argumnet');
//> Hello Parameter Argument undefined
//> Argumnets(3) ['Hello', 'Parameter', 'Argument']
특수하게 함수 안에서 argument 를 사용할 수 있다.
화살표 함수 안에서는 못쓰고 function 함수 안에서만 쓸 수 있다.
argument : 넣었던 인수들을 배열 모양으로 출력해준다.
매개변수는 있지만 인수로 넣어주지 않았다면 undefined 로 출력.
function add(x, y) {
return x + y;
}
add(5)
//> NaN
5 에서 undefined 를 더하므로 NaN 이 나온다.
function a(w, x) {
console.log(w, x);
}
a('Hello', 'Parameter', 'Argument');
//> Hello Parameter
인수보다 매개변수가 적은 경우. 많은 쪽인 Argument 의 짝지어지고 남은 부분이 무시된다.
화살표 함수로 만들어보자.
const f = (x, y, z) => {
return x * y * z;
}
f(2, 3, 4)
//> 24
화살표 함수의 {} 중괄호와 return 이 이어지면 생략할 수 있다.
const f = (x, y, z) => x * y * x;
(a, b) => a + b;
(a, b) => { return a + b; }
햇갈린다 싶으면 소괄호로 감싸서 구분해주자.
(a, b) => (a + b);
(x, y, z) => (x * y * z);
함수 내부에서 매개변수 외에도 변수나 상수를 선언할 수도 있다. 바깥에서 선언한 변수나 상수를 사용할 수도 있다.
function minus1(x, y) {
const a = 100;
return (x - y) * a;
}
console.log(minus1(5, 3));
//> 200
const a = 100;
function minus2(x, y) {
return (x - y) * a;
}
console.log(minus2(5, 3));
//> 200
객체 리터럴 기본
객체 리터럴
객체는 여러 개의 변수를 하나의 변수로 묶을 때 사용한다.
const name = '조현영';
const year = 1994;
const month = 8;
const date = 12;
const gender = 'M';
배열이나 함수가 아닌 것들 중에서 특정한 모양을 가지면 객체 리터럴이라고 한다.
배열을 사용해서도 묶어줄 수 있지만, 객체를 사용해서 데이터를 묶어보자.
const zerochoe = {
name: '조현영',
year: 1994,
month: 8,
date: 12,
gender: 'M',
}
정보들이 {} 안에 묶여있는데, 중괄호를 쓰면 객체 리터럴이라고 한다.
속성이 들어있는데, 속성 이름과 속성 값으로 구분된다.
배열에서는 이름이 안붙어있고 인덱스만 있었다.
여러개를 묶을 때 이름이 필요하다 → 객체 리터럴,
필요없다 → 배열
const 객체 = {
속성 1 이름: 속성 1 값,
속성 2 이름: 속성 2 값,
속성 3 이름: 속성 3 값,
}
마지막에도 쉼표를 넣는 이유?
쉼표 넣어도 되고 안넣어도 되는데, 만약 다음 속성을 추가할 때 쉼표를 안붙였던 이전의 마지막 값 뒤에 쉼표를 추가한 뒤에 다음 속성을 추가해야 하므로, 편의상 쉼표를 붙여주자.
내가 안넣더라도 다른 사람이 다음에 추가해야할 수도 있다.
const zerochoe = {
name: '조현영',
year: 1994,
month: 8,
date: 12,
gender: 'M',
};
console.log(zerocho.name);
console.log(zerocho['name']);
console.log(zerocho.date);
객체 이름에 문자열이더라도 따옴표를 붙이지 않아도 되는데,
앞에 숫자가 들어가거나, 띄어쓰기가 들어간 경우, 특수문자가 들어간 경우에는 속성 이름에도 따옴표를 붙여준다.
const obj = {
bc: 'hello',
'2ca': 'hello',
'c a': 'hello',
'c-a': 'hello',
}
속성 내부에 접근할 때 [] 대괄호로 접근한다. 또는 . (온점) 으로 접근
obj.bc; // hello
obj['bc']; // hello
obj.2bc //안된다. error
대괄호에는 문자열 따옴표를 잊지않는다.
. 온점을 사용했을 경우에는 문자열 따옴표로 감싸야 하는 문자열들은 사용할 수 없다.
대괄호에서 따옴표를 빼먹으면 문자열이 아니라 변수가 되어버린다.
'스터디 > 웹개발' 카테고리의 다른 글
| 2022년9월28일 TIL - 정보처리기사 실기 - 프로그래밍 언어 활용(1) (0) | 2022.10.04 |
|---|---|
| 2022년9월26일 TIL(2) - 정보처리기사 실기 정리 - IV.통합 구현, V.인터페이스 구현 (1) | 2022.10.03 |
| 2022년09월25일 TIL - 정보처리기사 실기 - 데이터 입출력 구현 (0) | 2022.10.01 |
| 2022년9월24일 TIL - 정보처리기사 : UI 설계/디자인, 와이어프레임, 프로토타이핑 (0) | 2022.09.28 |
| 2022년9월23일 TIL - 자바스크립트 - break, continue, 중첩 반복문, 별찍기, 배열, 배열 메서드, 함수, 매개변수와 인수 (0) | 2022.09.26 |