Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- tanstack query
- 내배캠 프로젝트
- 리액트 훅
- 파이썬 for in
- 내일배움캠프 최종 프로젝트
- 파이썬 slice
- 타입스크립트 props
- 타입스크립트 리액트
- 파이썬 for
- 프로그래머스
- 코딩테스트
- JavaScript
- 리액트 공식문서
- 내일배움캠프
- 한글 공부 사이트
- 파이썬 enumerate
- useState
- 파이썬 반복문
- 내일배움캠프 프로젝트
- REACT
- 타입스크립트
- 리액트
- 리액트 프로젝트
- typeScript
- Next 팀 프로젝트
- 자바스크립트
- useEffect
- React Hooks
- 파이썬 replace
- 파이썬 딕셔너리
Archives
- Today
- Total
sohyeon kim
[JS] 나머지 매개변수, 전개 구문, 단축 속성명 본문
728x90
자주 쓰이는 문법들을 알아보자 ~
function showName(name) {
console.log(name);
}
showName("aoto"); // "aoto"
showName("aoto", "yae"); // Error는 안뜨지만 aoto만 뜬다.
showName(); // undefined
매개변수에 name만 쓰여있지만,
매개변수를 넘길 때 개수 제한은 없어 더 많거나 적은 값을 넘겨도 Error가 발생하지 않는다.
arguments
- 함수로 넘어온 모든 인수에 접근할 수 있다.
- 함수 내에서 이용 가능한 지역 변수이다.
- length / index가 있어서 배열이라 생각할 수 있지만
- 실은 Array 형태의 객체
- 그러니 배열의 내장 메서드 없음(forEach, map)
function showName(name) {
console.log(arguments.length);
console.log(arguments[0]);
console.log(arguments[1]);
}
showName("aoto", "yae");
// 2
// "aoto"
// "yae"
❗️ ES6에선 나머지 매개변수를 사용할 것을 권장
💡 나머지 매개변수 Rest parameters
전달하는 매개변수의 개수가 정확하지 않을 때 사용
function exam(a, b, c, ...args) {
console.log(a, b, c);
console.log(...args);
console.log(args)
}
exam(1, 2, 3, 4, 5, 6, 7, 8);
// 1 2 3
// 4 5 6 7 8
// [4, 5, 6, 7, 8] 전개 연산자를 안 쓰면 배열을 반환한다.
- 배열 메서드 사용 가능
function showName(...names) {
console.log(names);
}
showName(); // []
showName("aoto"); // ['aoto']
showName("aoto", "yae"); // ['aoto', 'yae']
응용!
function add(...numbers) {
let result = 0;
numbers.forEach((num) => (result += num));
// let result = numbers.reduce((prev,curr) => (prev+curr)); 위와 같음
console.log(result);
}
add(1, 2, 3); // 6
add(1, 2, 3, 4, 5); // 15
function User(name, age, ...skills) {
this.name = name;
this.age = age;
this.skills = skills;
}
const user1 = new User("aoto", 30, "html", "css");
const user2 = new User("yae", 40, "JS", "React");
const user3 = new User("haru", 50, "English");
console.log(user1); // User {name: 'aoto', age: 30, skills: Array(2)}
console.log(user2); // User {name: 'yae', age: 40, skills: Array(2)}
console.log(user3); // User {name: 'haru', age: 50, skills: Array(1)}
❗️ 주의할 점은 나머지 매개변수는 항상 마지막에 위치해야 한다. (...skills)
💡 전개 구문 Spread syntax
전개 연산자(...)를 작성해 말 그대로 펼쳐서 전개해 주는 것
let arr1 = [1, 2, 3];
console.log(arr1); // [1, 2, 3]
console.log(...arr1); // 1 2 3
❗️ 합치거나 추가 : 배열을 손쉽게 합치거나, 추가하기
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let result = [...arr1, ...arr2];
console.log(result); // [1, 2, 3, 4, 5, 6]
let result2 = [...arr2, 7];
console.log(result2); // [4, 5, 6, 7]
❗️ 복제 : 원본 안 건들고 복제하기
let arr = [1, 2, 3];
let arr2 = [...arr];
let user = { name: "aoto", age: 30 };
let user2 = { ...user };
user2.name = "yae";
console.log(user.name); // "aoto"
console.log(user2.name); // "yae"
응용!
let user = { name: "aoto" };
let info = { age: 30 };
let fe = ["JS", "React"];
let lang = ["Korean", "English"];
user = {
...user,
...info,
skills: {
...fe,
lang,
},
};
console.log(user); // {name: 'aoto', age: 30, skills: {…}}
let [name, ...rest] = ["aoto", 20, "Gyeongi"]
console.log("name", name) // "aoto"
console.log("rest", rest) // [20, "Gyeongi"]
// 나머지 부분을 배열로 반환한다!
💡 Property Shorthand 단축 속성명
객체의 key 와 value 가 같을 때 ~
const name = "aoto";
const newAge = 30;
const obj = {
name: name, // key 와 value 는 값이 같을 수 있다 이럴 때 생략이 가능!!
age: newAge,
};
// 위 obj 와 같다.
const obj2 = {
name,
age: newAge,
};
// 만약 age도 같다면
const obj3 = { name, age }; // 마치 배열 같지만 객체다.
🔗 https://youtu.be/lekNM8ldxno?si=qCxUOuvn3T3Q1GtP
728x90
반응형
'JavaScript' 카테고리의 다른 글
[JS] setTimeout, setInterval, clearTimeout (0) | 2023.12.14 |
---|---|
[JS] Closure 클로저 (0) | 2023.12.14 |
[JS] 배열과 객체의 구조 분해 할당 (0) | 2023.12.14 |
[JS] Array 배열 메소드 splice(), slice(), map(), filter(), join(), split() 등 (0) | 2023.12.14 |
[JS] String 문자열 메소드 indexof(), slice(), substring() 등 (0) | 2023.12.14 |