객체 리터럴
객체를 구성하는 속성의 이름과 실제 값을 한 쌍으로 묶어 표현하는 ‘객체 리터럴’을 이용해 객체 생성이 가능하다.
이때 속성의 이름을 키(key)라고 하고 속성의 실제 값을 value라고 한다.
const cat = {
name: "국희",
town: "부천"
}
여기서 속성의 value로 함수가 주어지면, 이 속성은 메소드가 된다.
또한 중요한 사실 하나! 키는 중복이 되면 안 되지만 값은 중복이 가능하다는 점이다.
const cat = {
name: "국희",
town: "부천",
eat: function() {
console.log("밥을 먹는다냥")
},
scratch: function() {
console.log("건드리면 할퀸다냥")
}
}
이렇게 객체를 만들었다면 속성을 참조할 때는 아래와 같이 두 연산자를 사용해서 하면 된다.
// .연산자 사용
console.log(cat.town)
cat.scratch()
// 대괄호 연산자 사용
console.log(cat['name'])
cat['eat']()
스프레드 연산자
스프레드 연산자를 사용하면 배열이나 객체 리터럴 등의 요소 목록을 펼칠 수 있다.
전개 구문, 전개 연산자라고도 불리며 연산자 표기는 …로 나타낸다.
// 배열 요소 복사 시 사용
const pet = ["강아지", "고양이"]
console.log(...pet) // 강아지 고양이
console.log(pet) // ['강아지', '고양이']
새로운 배열을 선언할 때 스프레드 연산자를 사용하면, 기존 배열의 개별 요소를 멤버로 가지는 배열을 생성할 수 있다.
const pet1 = ["강아지", "고양이"]
const pet2 = [...pet1, "햄스터"]
console.log(pet2) // ['강아지', '고양이', '햄스터']
const car1 = ["아반떼", "소나타"]
const car2 = ["스파크", ...car1]
console.log(car2) // ['스파크', '아반떼', '소나타']
스프레드 연산자는 객체 리터럴에 대해서도 동일한 기능을 수행한다.
단 배열과 달리 개별 요소가 key-value 형태로 구성되어 있다.
const bird = {
parrot: "앵무새",
chicken : "닭"
}
const animal = {
...bird,
dog: "강아지"
}
console.log(animal) // {parrot: '앵무새', chicken: '닭', dog: '강아지'}
JSON(JavaScript Object Notation)
자바스크립트 객체 표기법을 뜻하며 이는 자바스크립트 객체를 문자열로 표현하는 데이터 포맷이다.
JS에서만 사용할 수 있는 객체 타입을 다른 프로그래밍 언어에서도 사용할 수 있는 형태로 변환하기 위해 사용한다.
JSON 형식은 자바스크립트 객체 리터럴 표기법에 기반을 두고 있다.
객체 키와 문자열은 따옴표로 묶어야 하나 나머지는 그대로 표기할 수 있다.
// 이건 객체 리터럴
const gokuObject = {
name: "손오공",
race: "사이야인",
skills: [
"에네르기파",
"계왕권",
"순간이동"
]
}
// 이건 JSON 문자열
const gokuJSON = `{
"name": "손오공",
"race": "사이야인",
"skills": [
"에네르기파",
"계왕권",
"순간이동"
]
}`
이렇게 언제 다 표기하고있지..? 생각이 든다면..? JSON 표기를 도와주는 내장 객체 두 메소드를 사용하여 객체를 JSON 형식 문자열로 변환하거나 그 반대로도 환원할 수 있다!
// 객체 to JSON
const messi = {
name: "리오넬 메시",
'age': 34,
team : "파리 생제르망",
'nation' : "아르헨티나",
friends: ["아구에로", "수아레즈", "네이마르"]
}
console.log(messi)
/* 실행결과
{name: '리오넬 메시', age: 34, team: '파리 생제르망', nation: '아르헨티나', friends: Array(3)}
age: 34
friends: (3) ['아구에로', '수아레즈', '네이마르']
name: "리오넬 메시"
nation: "아르헨티나"
team: "파리 생제르망"
[[Prototype]]: Object
*/
console.log(JSON.stringify(messi))
console.log(typeof JSON.stringify(messi)) //string
// JSON to 객체
const messi2 = `{"name":"리오넬 메시","age":34,
"team":"파리 생제르망",
"nation":"아르헨티나","friends":["아구에로","수아레즈","네이마르"]}`
console.log(JSON.parse(messi2))
위의 코드에서 알 수 있는 사실들은
- 객체 리터럴 key는 일반 기호를 써서 표현하거나 문자열로만 표현할 수 있다.
- 반면 value는 어떤 타입(문자열, 숫자, 배열 객체 등등)이든 모두 가능하다.
- 실행 결과를 서버나 다른 프로그램에 보내고 싶다면? JSON.stringify 활용하기.
- JSON.stringify의 결과가 진짜 string인지 궁금하다면 typeof로 타입 확인하면 된다.
- parse시 주의사항으로는 작은따옴표 사용시와 같은 에러를 볼 수 있으니 이것 또한 주의하자.
- Uncaught SyntaxError: Expected property name or '}' in JSON at position 1 at JSON.parse
로컬스토리지(localStorage)
localStorage 속성은 현재 도메인의 로컬 저장소에 접근할 수 있게 해준다!
로컬 저장소는 웹브라우저에서 각 도메인에 대해 할당해주는 저장 공간으로 여기에다가 데이터를 영구적으로 보관할 수 있다. 영구적으로 보관한다 라는 말의 더 구체적인 의미는 브라우저를 껐다가 킨다거나 새로고침해도 해당 페이지에 데이터가 남아있도록 할 수 있다는 의미이다.
데이터 보관 시에는 데이터의 이름과 실제 값을 각각 지정하며, 이 때 데이터 타입은 문자열 형태만 허용된다.
로컬스토리지로부터 데이터를 읽거나 쓸 때는 아래와 같은 메소드들이 사용될 수 있다.

<로컬 스토리지 적용 전>
const myName = "jungdahye" console.log(myName) |
![]() |
<로컬 스토리지 적용 후>
const myName = "jungdahye" console.log(myName) localStorage.setItem("myName", myName) |
![]() |
배열 메소드 2편
콜백함수를 사용하는 대표적인 배열 메소드 알아보기!

// forEach
const food = ["피자", "치킨", "햄버거", "돈가스", "우동"]
food.forEach(function(name){
const p = document.createElement('p')
p.textContent = name
document.body.appendChild(p)
})
// 콜백함수의 두 번째 인자로 선택적으로 index 전달 가능
const food2 = ["피자", "치킨", "햄버거", "돈가스", "우동"]
food.forEach(function(name, index){
const p = document.createElement('p')
p.textContent = `${index +1} 번째 음식 ${name}`
document.body.appendChild(p)
})
//map
const food3 = ["피자", "치킨", "라면", "돈가스", "우동"]
const result = food.map(function(name, index){
return `맛있는 ${name}`
})
console.log(result)
//filter
const fruit = ["사과", "딸기", "포도", "오렌지", "바나나"]
const res = fruit.filter(function(name, index){
return name === "바나나"
})
console.log(res) // ['바나나']
https://www.inflearn.com/course/입문자-자바스크립트-기초강의/dashboard
입문자를 위한 자바스크립트 기초 강의 - 인프런 | 강의
웹 사이트를 움직이는 프로그래밍 언어, 자바스크립트의 주요 개념과 문법, 그리고 활용 방법을 소개합니다. 이제 막 HTML/CSS 걸음마를 떼신 분들도 부담 없이 소화하실 수 있는, 자바스크립트 입
www.inflearn.com
'Frontend' 카테고리의 다른 글
입문자를 위한 자바스크립트 기초 강의_미니플젝04 (0) | 2022.08.15 |
---|---|
입문자를 위한 자바스크립트 기초 강의_미니플젝02 (0) | 2022.07.31 |
입문자를 위한 자바스크립트 기초 강의_미니플젝01 (0) | 2022.07.23 |
입문자를 위한 자바스크립트 기초 강의_JS기초04 (0) | 2022.07.23 |
입문자를 위한 자바스크립트 기초 강의_JS기초03 (0) | 2022.07.12 |