스터디 진행중 프로퍼티에서 점표기법과 대괄호표기법에 대한 이야기가 나왔다.
기본적으로 프로퍼티에 접근하기위한 방법은 2가지 이다.
점표기법
const name = {
firstName: 'Forger'
lastName: 'anya'
}
name.firstName // "Forger"
name.lastName // "anya"
대괄호 표기법
const name = {
firstName: 'Forger'
lastName: 'anya'
}
name["firstName"] // "Forger"
name["lastName"] // "anya"
의문1 왜 두가지의 표기법이 있을까?
의문2 대괄호표기법이 동적인 값을 담아 호출할 수 있다는것은 알겠는데 그러면 싹다 대괄호만 사용하면 되는 것이 아닌가? 추가로 점표기법은 key가 숫자이면 사용도 못하는데, 왜 있는 걸까
뭘까 이아이...
의문을 해결하고 싶었음
아티클, 블로그 찾아보기
https://oliviakim.tistory.com/184
-> 굉장히 좋은 블로그 글
https://ko.javascript.info/object
대괄호 표기법은 프로퍼티 이름과 값의 제약을 없애주기 때문에 점 표기법보다 훨씬 강력합니다. 그런데 작성하기 번거롭다는 단점이 있습니다.
이런 이유로 프로퍼티 이름이 확정된 상황이고, 단순한 이름이라면 처음엔 점 표기법을 사용하다가 뭔가 복잡한 상황이 발생했을 때 대괄호 표기법으로 바꾸는 경우가 많습니다.
일반적인 상황에서는(정적인) 점표기법을 사용하는 것이 다른 사람에게 객체에 접근하고 있다는 것을 쉽게 보여줄 수 있다.
대괄호표기를 사용하면 동적인 값이 사용된다는 것을 알려줄수 있다.
한 가지 방법으로 다 할수 있는데 왜 나누어져 있지? 의문을 처음 가져본 주제였다. 공식적인 문서에는 사용법이 위주여서 정답을 찾기 어려웠는데, 좋은 블로그글을 찾았고, 큰 동의를 한다.
프로퍼티를 접근함에 있어 key 값이 정적인지 동적인지 직관적으로 보여줄 수 있다! 가 가장 큰 결론이다.