그런데 for...in 문을 사용하면, 사용자가 정의한 key 이외에 localStorage의 built-in 항목까지 조회된다는 단점이 있다.
따라서 for...in 문을 사용하고 싶다면 아래 예제와 같이 코드가 수정되어야 한다.
아래 코드는 built-in propery 제거된 코드이다.
JavaScript
for...in 문에서 조회되는 built-in 항목을 제거하기 위해서 hasOwnProperty() 함수를 사용했다.
Object.keys()
JavaScript
localStorage의 key 목록을 조회하기 위해 Object.keys() 함수를 사용한다.
Synapse Map Insight
window.localStorage.setItem(key, value)
window.localStorage.getItem(key)
// setItemwindow.localStorage.setItem('name','anna');window.localStorage.setItem('age','20');// getItemconst name = window.localStorage.getItem('name');const age = window.localStorage.getItem('age');// 결과 출력document.write(name);// annadocument.write('<br/>');document.write(age);// 20
window.localStorage.removeItem(key);
// setItemwindow.localStorage.setItem('name','anna');window.localStorage.setItem('age','20');// removeItemwindow.localStorage.removeItem('name');window.localStorage.removeItem('grade');// getItemconst name = window.localStorage.getItem('name');const age = window.localStorage.getItem('age');// 결과 출력document.write(name);// nulldocument.write('<br/>');document.write(age);// 20
window.localStorage.clear();
// setItemwindow.localStorage.setItem('name','anna');window.localStorage.setItem('age','20');// clearwindow.localStorage.clear();// getItemconst name = window.localStorage.getItem('name');const age = window.localStorage.getItem('age');// 결과 출력document.write(name);// nulldocument.write('<br/>');document.write(age);// null
// 초기화window.localStorage.clear();// setItemwindow.localStorage.setItem('name','anna');window.localStorage.setItem('age',20);// 모든 key, value 출력// output =>// age : 20// name : annafor(let i =0; i < window.localStorage.length; i++){// key 찾기 const key = window.localStorage.key(i);// value 찾기 const value = window.localStorage.getItem(key);// 결과 출력 document.write(key +" : "+ value +"<br />");}
// 초기화window.localStorage.clear();// setItemwindow.localStorage.setItem('name','anna');window.localStorage.setItem('age',20);// 모든 key, value 출력// output => // age : 20// name : anna// length : null// clear : null// getItem : null// key : null// removeItem : null// setItem : nullfor(const key in window.localStorage){// value 찾기 const value = window.localStorage.getItem(key);// 결과 출력 document.write(key +" : "+ value +"<br />");}
// 초기화window.localStorage.clear();// setItemwindow.localStorage.setItem('name','anna');window.localStorage.setItem('age',20);// 모든 key, value 출력// output => // age : 20// name : annafor(const key in window.localStorage){if(window.localStorage.hasOwnProperty(key)){// value 찾기const value = window.localStorage.getItem(key);// 결과 출력 document.write(key +" : "+ value +"<br />");}}
// 초기화window.localStorage.clear();// setItemwindow.localStorage.setItem('name','anna');window.localStorage.setItem('age',20);// key 목록 조회 / 출력const keys = Object.keys(window.localStorage);document.write(keys);document.write('<br/>');// 모든 key, value 출력// output => // age,name// age : 20// name : annafor(const key of keys){// value 찾기 const value = window.localStorage.getItem(key);// 결과 출력 document.write(key +" : "+ value +"<br />");}