고양이와 코딩
[웹 풀사이클 데브코스] REST API 개발 본문
728x90
var loginUser = {}
와 같은 빈 객체를 확인하는 방법 !
- Obejct.keys() ✨ 이걸 사용해 봅시다
- for in
- lodash : isEmpty
'Object.keys()' 메서드는, 객체가 가지고 있는 열거 가능한 속성의 이름을 배열로 반환합니다.
const obj1 = {}
const obj2 = { message : "점심으로 양송이 스프를 먹어야지" }
const num = 1
const str1 = "one"
const str2 = "" // 문자열도 객체입니다
console.log(Object.keys(obj1).length === 0)
console.log(Object.keys(obj2).length === 0)
// console.log(Object.keys(num).length === 0)
console.log(Object.keys(str1).length === 0)
console.log(Object.keys(str2).length === 0)
그리고 로그인 구현 부분에서는
// 만약 userId 값을 못찾았으면
if(isExist(loginUser)){
console.log("같은 아이디 찾았다")
// pwd도 맞는지 비교
if (loginUser.pwd === pwd){
console.log("패스워드도 같다")
} else {
console.log("패스워드 틀렸엉")
}
} else {
console.log("입력하신 아이디는 없는 아이디입니다.")
}
})
const isExist = (obj) => {
if (Object.keys(obj).length) {
return true
} else {
return false
}
}
이렇게 활용을 했는데요, 여기서 함수를 만들어 줄때 이름을 !! 정말 명확히 하는것이 중요합니다. ..
저번에 다른 분 코드를 뜯어보면서 이게 true, false가 반대로 되어야 하는거 아닌가?? 아닌가..? 하고 엄청 고민했던 경험이
있습니다.. ㅎㅎ🥲
var을 사용해야 하는 경우 ?
선생님이 몇몇 변수를 계속 var로 선언하셔서 살짝 어리둥절 했는데요, 뭔가 전역 스코프 문제때문에 그러시는 것 같긴 한데,,
고집스럽게 let으로 써도 잘 작동해서 정확히 왜 이렇게 사용하시는건지 궁금해졌습니다!
전역 변수를 최소화 하는것이 좋지만 !! 특정 상황에서는 .. (우리 강의 환경같이 쉽게 이해해야 하는 ?) var를 사용하기도 한다고 합니다 ,,
'var'로 선언된 변수는 전역 스코프에서 선언되었을 때 전역 객체에 속성을 만듭니다! == node.js환경에서는 global 객체에 해당합니다.
이런 특성 때문에 var를 사용해 전역 변수를 만들면 해당 변수가 전역 객체의 속성으로 추가되어 전역 스코프 어디서든 접근할 수 있습니다 ㅎㅎ
그러나 웬만하면 'let' 과 'const'를 사용해서 블록 스코프를 가지는 지역 변수를 선업합시다(‘•̀ ▽ •́ )φ
'데브코스 TIL' 카테고리의 다른 글
[웹 풀사이클 데브코스 TIL] - 6주차 Day 1 - DBMS 알아보기 (0) | 2023.12.18 |
---|---|
[웹 풀사이클 데브코스 TIL] 5주차 Day 5 - REST API 개발 실습 (2) (1) | 2023.12.15 |
[웹 풀사이클 데브코스 TIL] 5주차 Day 3 - Node.js 및 Express.js를 사용한 서버 개발 실습 (3) (0) | 2023.12.13 |
[웹 풀사이클 데브코스 TIL] 5주차 Day 2 - Node.js 및 Express.js를 사용한 서버 개발 실습 (2) (0) | 2023.12.12 |
[웹 풀사이클 데브코스 TIL] 5주차 Day 1 - Node.js & Express.js 서버 개발 실습(1) (1) | 2023.12.11 |