새 모니터와 새 출발한 첫 날 🎵
화면이 커지니까 눈이 정~말 편하다
선물 받은 모니터라 더 더 열심히 공부해야겠다는 마음이 든다
페어 님과 함께 한 이틀(...동안의 배열과 객체...)
많이 배울 수 있던 소중한 시간이었다
인내심을 가지고 나를 기다려주시고
친절하고 자상하게 알려주셔서 감사하고 죄송했다
나도 쓰임있는 사람이 되어야지
오늘 있었던 스페셜 레처까지 동기부여 제대로다
취업할 거야! 보다는
실력을 우선 키우자. 라고 뼈저리게 느꼈다
그러면 취업길은 알아서(?) 열릴 것이니라...
참조형 데이터 타입
key는 문자열이며 value로 어느 것이든 가질 수 있다.
object 생성자에 주어진 값이 null
또는 undefined
면 빈 객체를 생성하여 반환한다.
자바스크립트에서는 객체의 값을 추가 선언하거나 재할당이 가능하다.
배열 또한 객체이다!
let object1 = new object(); //object constructor 객체 생성자 방식
object1.key = value;
let obj = new object({1:2})
let object2 = {}; // object literal 객체 리터럴 방식
let object = {key: [1, 2], name: 'young'};
object.key;
>[1,2]
object.name;
>'young'
객체에 property
를 추가할 때 :
key 값을 직접 정해두고 작성하는, literal notation에서 사용
let object = {key: [1, 2], name: 'young'};
object['key']; //문자열!
>[1, 2]
object['name'];
>'young'
객체에 property
를 추가할 때 :
key 값을 runtime에서 알 수 있는, 동적일 때 사용한다 (ex 변수)
key 값을 표현식을 통해 지정하는 computed property name
delete
operatorobject
의 property
를 제거한다key
를 입력하면 해당되는 value
까지 모두 삭제!delete object.key
in
operatorobject
안에 key
가 있는지 여부(true
or false
)를 반환한다.let velog = {young : 39}
'young' in velog //---> key는 반드시 string 타입
> true
for...in
key
들을 받아오고 싶을 때 사용한다 for (let 지역변수 key in object) {
console.log(key) // 지역변수가 object를 탐색하는 동안 반복할 일
}
---> object의 key들이 순서대로 출력된다
for...of
iterable object
에서 사용 가능하다 for (let 지역변수 item of iterable ) {
statement //
}
object를 iterable
로 바꿔주는 method Object.entries(name)
을 사용하면 object에서 for..of
사용 가능하다
let fruits = {
'apple':1,
'mango':3,
'tomato':5
}
💡for (const item of Object.entries(fruits)) {
console.log(item);
}
// 키와 값을 배열로 반환
> Array ["apple", 1]
> Array ["mango", 3]
> Array ["tomato", 5]
💡for (const [key, value] of Object.entries(fruits)) {
console.log(`${key}: ${value}`);
}
// 변수를 2개 지정하면 각각으로 받아와서 문자열로 반환
> "apple: 1"
> "mango: 3"
> "tomato: 5"
property value shorthand
function makeUser(name, age) {
return {
name, // name: name 과 같음
age, // age: age 와 같음
// ...
};
}
makeUser('young', 10);
>{name: 'young', age: 10}
//💡property value shorthand
const color = {apple : 'red', mango : 'yellow', tomato : 'green'};
const size = {apple : 'small', mango : 'medium', tomato : 'large'};
const taste = {apple : 'delicious', mango : 'good', tomato : 'sweet'}
const price = new Fruits(1000, 5000, 300);
console.log(price);
>>Fruits {apple: 1000, mango: 5000, tomato: 300}
//💡constructor function
function Fruits(apple, mango, tomato) {
// this = {}; ---> 함수를 new 라는 키워드와 함께 사용하면 this가 객체를 생성하는 것으로 쓰인다
this.apple = apple;
this.mango = mango;
this.tomato = tomato;
// ---> return this;
}
break
: 반복문 종료continue
: 해당 값은 건너뛰고, 다음 값으로 continue한다window
를 참조한다.Object.assign
💡 Object.assign(Target, Source);
---> source를 target에 덮어쓰기 한다
const first = {
day : 'thu',
month : 11,
date : 2
};
const one = {
day: 1,
month: 1,
};
1️⃣const fione = Object.assign(first, one);
console.log(fione);
> Object { day: 1, month: 1, date: 2 }
2️⃣const second = Object.assign({}, first); // 빈 객체에 객체 first를 복사해 넣는다
console.log(second);
>{day: 'thu', month: 11, date: 2}
this
또한 더 공부해 볼 것!!
엄격모드, 비엄격모드?
next()
iterable object
= 반복 가능한 객체
https://ko.javascript.info/iterable
key 이름에 띄어쓰기가 있으면 따옴표로 묶는다
마지막 property는 쉼표로 끝나도 된다 (모든 property가 비슷한 형태가 되어서 접근이 편리해진다)
<let object = {
'today is' : 7, // ---> bracket notation으로 접근해야 한다
good : 'day', // ---> tailing(hanging) comma
};
Method
는 소괄호()와 함께 사용한다!
중괄호, 대괄호 아니고 소괄호!!
코드는 readable하게...
문제 풀고 시간 남으면 간결하게 수정해보자
요소를 추가하면 length가 return 되고
요소를 삭제하면 삭제한 요소를 return 한다
어제보다 오늘 더 성장한 나를 응원하기 🍀