객체
-> 변경 가능한 값
-> 원시값을 제외한 모든 것
var hi={
age=10, //프로퍼티 : 객체의 상태를 나타내는 값
who:function(){} //메서드 : 프로퍼티를 참조하고 조작할 수 있는 동작\
ES6에선 메서드를 축약해서 표현할수있다.
who(){} 이런식으로
}
프로퍼티 key = age / 프로퍼티 value= 10 이다.
key이름은 네이밍 규칙을 지켜서 하면 좋다( 만약, 규칙을 못지킬경우 " " , ' '을 사용해라 ex) hi-there 같은경우 ' '를
사용하지 않으면 에러를 발생시킨다)
이름이 중복되면 나중에 선언한 프로퍼티가 덮어쓴다.
프로퍼티 접근,갱신,동적 생성,삭제
마침표 표기법 -> hi.age
대괄호 표기법 -> hi['age'] 여기서 그냥 [age]라고 하면 오류가난다. 반드시 따옴표로 감싼 문자열이여야한다.
만약 프로퍼티에 접근했는데 존재하지 않을경우 undefined를 반환한다.
hi.age=20 / hi.name='steve' / delete hi.house ( house라는 프로퍼티가 없기 때문에 삭제 불가능하지만 에러발생 X)
객체 리터럴
-> 객체를 생성하기 위한 표기법 ( 리터럴: literal )
ES6 객체 리터럴 확장
축약표현이 가능하다.
var a=1,b=2;
var sho={
a:a,
b:b
}
//{a:1,b:2}로 설정됨
변수이름이 프로퍼티키와 동일한 이름일 때 key 생략가능
let a=1,b=2;
const sho={a,b}
//{a:1,b:2}
# 계산된 프로퍼티 이름
좀 신기하다.
대괄호 [..]로 묶인 프로퍼티의 key (대괄호는 필수)
var p='hi'
var i=0
var k={}
k[p+'-'+ ++i]=i
k[p+'-'+ ++i]=i
k[p+'-'+ ++i]=i
log(k) // {hi-1:1,hi-2:2,hi-3:3}
위처럼 출력된다.
ES6로는 백틱을 사용해서 하면 된다.
var k={
[`${} - ${}`]:i ...
}
아래 내용을 이어서 정리하겠다.
https://pro-train.tistory.com/39?category=940032
원시 값 && 참조 값
JavaScript에서 원시 값(primitive, 또는 원시 자료형)이란 객체가 아니면서 메서드도 가지지 않는 데이터입니다. 원시 값에는 7종류, string, number (en-US), bigint (en-US), boolean, undefined, s..
pro-train.tistory.com
객체는 프로퍼티 키를 인덱스로 사용하는 HashTable이라고 생각할 수 있다.
HashTable이란?
해쉬테이블은 key와 value형식으로 데이터를 저장하는데 사용할 수 있는 자료구조다.해쉬테이블은 '연관'이라고도 하는데 , 각 키에 대해서 데이터가 최대 한번 발생하기 때문 ->전화번호부나 사전을 생각 / 해쉬테이블을 사용해서 고유 키를 기반으로 데이터를 저장,검색 및 삭제[자세한건 추후 따로 정리하겠다.]
[참조]
https://mangkyu.tistory.com/102
https://khalilstemmler.com/blogs/data-structures-algorithms/hash-tables/
Hash Tables | What, Why & How to Use Them | Khalil Stemmler
Hash tables are one of the most critical data structures all developers should master. At the class level, they help us solve various algorithmic challenges. Benefited by fast data retrieval as a strength, hash tables are foundational to standard tools and
khalilstemmler.com
'JavaScript' 카테고리의 다른 글
스코프 / 프로퍼티 어트리뷰트 (1) | 2022.05.14 |
---|---|
함수 (0) | 2022.05.09 |
타입 변환,단축 평가 (0) | 2022.04.29 |
표현식과 문/ 데이터 타입/연산자 (0) | 2022.04.25 |
변수 (0) | 2022.04.20 |