[]에는 문자열을 넣어야 하므로 zerocho[name]이 아닌 zerocho['name']이라고 작성해야 합니다. zerocho[name]이라고 작성하면 name 자리에 name의 값을 넣어 사용하게 됩니다. 어떤 차이가 있는지 다음 예제로 확인해 보세요.
const name = 'date';
zerocho['name'];
< '조현영'
zerocho[name]; // zerocho['date']와 같은 의미
< 12
zerocho.hello;
< undefined
그리고 마지막 코드에서 보듯이 zerocho.hello처럼 객체에 존재하지 않는 속성에 접근하면 undefined가 나옵니다.
대부분은 대괄호보다 마침표를 사용해 속성에 접근하지만, 마침표를 사용할 수 없을 때도 있습니다. 속성 이름에 띄어쓰기나 마침표가 들어 있는 경우에 그렇습니다. 속성 이름은 문자열이므로 띄어쓰기와 마침표가 들어갈 수 있습니다. 그래서 변수['속성 이름'] 또는 변수['속성.이름']처럼 []를 사용해 속성에 접근합니다.