Javascript
배열
배열 데이터 ["데이터1", "데이터2", ...]
🍙 배열 메소드 (일부)
push("새로운 데이터") | 기존 배열 데이터에 새로운 데이터를 맨 뒷자리에 추가한다. |
pop() | 기존 배열 데이터에서 맨 마지막 데이터를 제거한다. |
unshift("새로운 데이터") | 기존 배열 데이터에서 맨 첫번째 인덱스 번호의 자리에 새로운 데이터를 추가한다. |
shift() | 기존 배열 데이터에서 맨 첫번째 인덱스 번호의 데이터를 제거한다. |
concat(새로운데이터) | 두가지 배열을 결합을 시키겠다는 것을 의미 |
map() | 내장함수는 최초의 인덱스로부터 인자값을 하나씩 출력하는 과정에서 수식의 결과값을 배열 데이터로 반환 (DOM에서는 반복에 대한 역할을 담당) |
filter() | 내장함수는 최초의 인덱스로부터 인자값을 하나씩 대입하여 조건에 부합하는 것만 필터링한다. (조건문의 역할을 담당) |
forEach() | 파라미터로 주어진 함수를 배열 요소 각각에 대해 실행하는 메서드이다. map() 메서드와 거의 비슷하지만 차이점은 따로 return 하는 값이 없다는 점이다. |
🍙 unshift와 pop 해보기
const arr1 = [2, 3, 4, 5];
arr1.unshift(1);
console.log(arr1); // (5) [1, 2, 3, 4, 5]
arr1.pop();
console.log(arr1); // (4) [1, 2, 3, 4]
🍙 concat 해보기
const arr2 = [0];
const arr3 = arr2.concat(1);
console.log(arr3); // (2) [0, 1]
🍙 배열 데이터 자체를 변경할 경우
const str_arr = ["파이리", "꼬부기"];
// str_arr = ["피카츄", "메타몽"]; // Uncaught TypeError: Assignment to constant variable.
에러 발생!! (데이터 자체를 갱신할 수 없는 경우)
🍙 map() 활용
console.log([0, 1, 2, 3, 4, 5, 6].map(function(x){return x * 2})); // (7) [0, 2, 4, 6, 8, 10, 12]
console.log([0, 1, 2, 3, 4, 5, 6].map(x => x * 2)); // (7) [0, 1, 2, 3, 4, 5, 6] 화살표 함수를 활용.
마치 반복문 사용한것처럼 다 곱해져서 나옴!!
🍙 filter() 활용
console.log([0, 1, 2, 3, 4, 5, 6].filter(function(x){return x % 2 == 0})); // (4) [0, 2, 4, 6]
console.log([0, 1, 2, 3, 4, 5, 6].filter(x => x % 2 == 0)); // (4) [0, 2, 4, 6] 화살표 함수 활용.
조건에 맞도록 필터
객체
객체 데이터{key:value1, key:value2, ...}
🍙 객체 생성
const myHero1 = {
name : "테이",
category : "오크",
level : 1,
hp : 100,
ep : 0,
cloth : "일반 가죽옷",
device : "목검"
}
🍙 객체 출력1 → X
console.log(myHero1);
// {name: '테이', category: '오크', level: 1, hp: 100, ep: 0, …}
// category: "오크"
// cloth: "일반 가죽옷"
// device: "목검"
// ep: 0
// hp: 100
// level: 1
// name: "테이"
// [[Prototype]]: Object
🍙 객체 출력2 → O
console.log(myHero1.cloth); // 일반 가죽옷
🍙 객체에 새로운 요소 추가하기
myHero1.hat = "비니모자";
🍙 추가된거 확인해보기
console.log(myHero1);
// {name: '테이', category: '오크', level: 1, hp: 100, ep: 0, …}
// category: "오크"
// cloth: "일반 가죽옷"
// device: "목검"
// ep: 0
// hat: "비니모자" // <== 새롭게 추가됨~
// hp: 100
// level: 1
// name: "테이"
// [[Prototype]]: Object
🍙 자바스크립트의 내장함수 assign
assign(객체 변수명, {신규 key1 : 신규 value1}, {신규 key2 : 신규 value2}, ...)
assign() | 객체에 새로운 값을 할당할 수 있음 |
🍙 assign 활용해보기
const obj1 = {};
Object.assign(obj1, {new0 : "BTS"}, {new1 : "아이유"});
console.log(obj1); // {new0: 'BTS', new1: '아이유'}
Object.assign(obj1, {new0 : "소방차"});
console.log(obj1); // {new0: '소방차', new1: '아이유'}
즉, 기존에 존재하는 key 의 value의 교체도 가능하다.
배열 데이터와 객체 데이터의 비교
🍙 공통점
- 여러가지 데이터를 담을 수 있음
🍙 차이점
- 배열 데이터 : 이미 순서가 정해져 있음 → 인덱스 번호를 기준으로 찾음
- 객체 데이터 : 실질적인 순서는 없음 → key 값을 기준으로 value 값을 추출
전개연산자
전개연산자(...) | 나열형 자료(배열, 객체)를 추출하거나 연결시 사용 |
🍙 전개연산자를 통한 결합
const arr4 = [...arr3, 2, 3];
console.log(arr4); // (4) [0, 1, 2, 3]
🍙 전개연산자를 통한 추출
const [first, ...arr5] = arr4;
console.log(first); // 0
console.log(...arr5) // 1 2 3
console.log(arr5); // (3) [1, 2, 3]
전개연산자를 이용했기 때문에
first 에는 첫번째 0번 인덱스 번호의 값을 저장하고
나머지를 가져와서 arr5에 저장을 한다. (배열데이터의 형식)
🍙 전개연산자를 통한 객체 데이터의 결합 또는 변경
const obj2 = {
name : "테이",
context : "프론트엔드",
age : 20,
region : "서울"
}
const obj4 = {...obj3, age: 28};
console.log(obj4);
// age: 28 <<< 얘만 변경됨
// context: "프론트엔드"
// name: "테이"
// region: "서울"
나이 수정한걸 볼 수 있음
🍙 전개연산자를 통한 객체 데이터의 추출
const {age, ...obj5} = obj4;
console.log(age); // 28
console.log(obj5);
// context: "프론트엔드"
// name: "테이"
// region: "서울"
나이를 추출해버렸음
'🧠 저장 > Javascript' 카테고리의 다른 글
Javascript - 이벤트 (0) | 2022.09.13 |
---|---|
Javascript - 화살표 함수, 호이스팅 (0) | 2022.09.02 |
Javascript - var, let, const 비교 (0) | 2022.08.30 |
Javascript - 템플릿, 삼항조건연산자 (0) | 2022.08.30 |
Javascript - DOM, 이벤트처리 (0) | 2022.08.20 |