객체 만들기
let user = new Object(); // '객체 생성자' 문법
let user = {}; // '객체 리터럴' 문법
객체 리터럴 - 중괄호를 이용해 만든다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
let user = {
name: "kang",
age: 20,
}
</script>
</body>
</html>
마지막 프로퍼티의 끝에 쉼표를 사용할 수 있다.
상수 객체는 수정될 수 있다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const user = {
name:"kang",
}
user.name = "kim";
alert(user.name);
</script>
</body>
</html>
const는 user의 값을 고정하지만 안의 내용은 고정하지 않는다.
대괄호 표기법 ☆
여러 단어를 조합해 프로퍼티 키를 만든 경우엔, 점 표기법을 사용해 프로퍼티 값을 읽을 수 없다.
//문법 에러가 발생
user.likes iphone = true
키가 유효한 변수 식별자(공백이 없고 특수문자가 없는 경우)가 아닌 경우에는 점을 사용하는 대신 대괄호 표기법(square bracket notation)을 사용해서 키에 어떤 문자열이 있던지 상관없이 동작한다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
let user = {};
// set
user["likes birds"] = true;
// get
alert(user["likes birds"]); // true
// delete
delete user["likes birds"];
</script>
</body>
</html>
대괄호 표기법에서 문자열은 ""을 붙여줘야 한다.
let key = "likes iphone";
// user["likes iphone"] = true; 와 같다.
user[key] = true;
모든 표현식의 평가 결과를 프로퍼티 키로 사용할 수 있습니다.
객체는 몇 가지 특수한 기능을 가진 연관 배열(associative array)입니다.
객체는 프로퍼티(키-값 쌍)를 저장합니다.
- 프로퍼티 키는 문자열이나 심볼이어야 합니다. 보통은 문자열입니다.
- 값은 어떤 자료형도 가능합니다.
아래와 같은 방법을 사용하면 프로퍼티에 접근할 수 있습니다.
- 점 표기법: obj.property
- 대괄호 표기법 obj["property"]. 대괄호 표기법을 사용하면 obj[varWithKey]같이 변수에서 키를 가져올 수 있습니다.
객체엔 다음과 같은 추가 연산자를 사용할 수 있습니다.
- 프로퍼티를 삭제하고 싶을 때: delete obj.prop
- 해당 key를 가진 프로퍼티가 객체 내에 있는지 확인하고자 할 때: "key" in obj
- 프로퍼티를 나열할 때: for (let key in obj)
지금까진 '순수 객체(plain object)'라 불리는 일반 객체에 대해 학습했습니다.
자바스크립트에는 일반 객체 이외에도 다양한 종류의 객체가 있습니다.
- Array – 정렬된 데이터 컬렉션을 저장할 때 쓰임
- Date – 날짜와 시간 정보를 저장할 때 쓰임
- Error – 에러 정보를 저장할 때 쓰임
- 기타 등등
reference
https://ko.javascript.info/object