yes
배열 : index에 요소가 담겨 순서를 가진다.
객체 : 각 key에 value를 한 쌍으로 담겨 의미를 가진다. 그럼 순서를 가질 순 없을까?let obj = {a : 1, b : 2, c : 3}; let arr1 = Object.keys(obj) console.log(arr1) // ['a', 'b', 'c'] <-배열로 담겨 순서를 가질 수 있다! let arr2 = Object.values(obj) console.log(arr2) // [1, 2, 3] let len1 = Object.keys(obj).length // 이러면 길이도 구할 수 있다! let len2 = Object.values(obj).length console.log(len1) // 3 console.log(len2) // 3 key와 value는 한 쌍이기 때문에 동일한 결과가 나온다!
yes
dot notation
과 bracket notation
의 차이를 이해한다.dot notation :
.
으로 조회한다.
bracket notation :[]
(대괄호)로 조회한다.key
값이 변수로 주어질 때 조회할 수 있다. (*변수가 아닐 경우에는 꼭''
로 키 값 감싸주기!)let user = {name : "jabae", city : "seoul", age : 20}; // value에는 꼭 '' || ""을 써 주어야 한다! console.log(user.name) // 'jabae' console.log(user['name']) // jabae let where = 'city' // console.log(user[where]) // seoul
key
가 있는 지 없는 지 확인할 수 있는 메소드가 있다!'key' in obj
: obj
객체 안에 key
값이 있는 지 확인할 수 있다. 있으면 true
, 없으면 false
를 반환한다.console.log('name' in user) // true console.log('email' in user) // false
tweet.content
와 tweet['content']
의 차이가 무엇인지 설명할 수 있다.위에서 설명했다.
obj.a = "hello"
위의 예제를 이어서
user.age = 26; console.log(user.age) // 26
delete
키워드를 사용할 수 있다.
delete
: 냅다 key 값과 value 값을 지워주는 키워드이다.dot notation
과bracket notation
과 함께 쓸 수 있다.
위의 예제를 이어서delete user.city; console.log(user) // {name: 'jabae', age: 26} delete user['age']; console.log(user) // {name: 'jabae'}
for ... in
문을 이해하고 다룰 수 있다.
for 속성이름 in 객체
: 객체는 반복이 불가능하지만 for in은 가능하다!let friend = {name : "jihyu", city : "seoul", age : 20}; for (let key in friend) { console.log(key); // name\ city\ age\ 가 순서대로 출력된다. }
for in
for of
가 배열에서, string에서, 객체에서 어떻게 쓰이는 지 알아보았는데, 그걸 내 것으로 만들기 위해서는 조금 더 공부가 필요할 것 같다. 많이 쓰인다고 하니 깊이 파고들 필요가 있다.Object.keys(obj).length
이렇게 객체의 요소 갯수를 구한다거나, 객체의 요소가 배열일 때 obj[key][index]
이렇게 접근 가능하다는 게 신기하다. obj[key].slice(0, -1)
이런 식으로도 가능하다는 것도. 싱기방기😬