id.length==0 || id=="" 둘다 같은의미아닌가요?
조회수 286회
id.length==0 || id==""
javascript에 id.length==0 || id=="" 이런식으로 빈값체크하잖아요?
근데 오른쪽이나 왼쪽이나 둘다 같은뜻아닌가요? lngth가 0이면 당연히 아무것도 입력안됐으니까 "" 이랑 같은거같은데
굳이 ||로 둘다 써야하는 이유를 모르겠어요
1 답변
-
저는 말씀하신 것과 같이 작성된 코드를 처음 보는 것 같습니다.
의도는 모르겠으나 좋은 코드도 아닌 것 같습니다.
빈 문자열인지 아닌지 확인 하려면 그냥""
랑 비교하면 됩니다.또,
id.length == 0
과id == ""
은 같은 의미가 아닙니다.
가령id
가0
일 경우id.length
는undefined
이므로id.length == 0
의 결과는false
,id == ""
의 결과는true
입니다.const id = 0; console.log(id.length == 0); // false console.log(id == ""); // true
물론 id가 무조건 문자열이라는 가정이 붙는다면 결과는 같겠지요.
해당 코드가 좋지 않다고 생각하는 이유는 몇 가지가 있는데:
==
는 형변환을 하여 비교하게 됩니다. 문제가 일어날 가능성을 줄이기 위해===
를 이용하는 것이 좋습니다. (참고 링크)- 해당 코드의 의도를 모르겠습니다.
id
가[]
,{ length: 0 }
인 경우에는 빈 문자열이 아니지만id.length == 0
에 의해true
를 결과로 얻습니다. 빈 문자열인지 아닌지 확인하려면 그냥""
과 같은지만 확인하면 됩니다.length
확인은 불필요한 것 같네요.
댓글 입력