고양이와 코딩

[웹 풀사이클 데브코스] REST API 개발 본문

데브코스 TIL

[웹 풀사이클 데브코스] REST API 개발

ovovvvvv 2023. 12. 14. 16:12
728x90
  var loginUser = {}

와 같은 빈 객체를 확인하는 방법 !

 

  1. Obejct.keys()       ✨ 이걸 사용해 봅시다
  2. for in
  3. 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'를 사용해서 블록 스코프를 가지는 지역 변수를 선업합시다(‘•̀ ▽ •́ )φ