0 == 1 조건 의미?
관련링크
본문
위 질문에 채택된 @BIHON 님 답변에 있더라구요. 무슨 의미인지?
if ( parseInt(<?php echo $member['mb_6'] ?>)||0 == 1) {
답변 4
parseInt("TEST") 와 같이 들어오면 NaN 이 반환되는데 이걸굳이 false 로 바꾸려고 그렇게 처리 한거 같네요
NaN 도 false 처리되기 때문에 굳이 저렇게 할필요가 있을까 싶긴 하네요
parseInt(값)
정수화를 하는데, 숫자형이 아니면 NaN(Not a Number)입니다.
parseInt(값)|0
이렇게 붙여주면 값이 없거나 숫자형이 아니어도 0이란 값을 구할 수 있습니다.
결과값은 숫자(Number)입니다.
느슨한 비교(==, !=)에서는 유연하게 넘어갈 수 있으니 사소해 보일 수 있는데
제대로 된 비교를 하려면 형까지 맞춰주면 좋겠죠?
그래서 뒤쪽도 =='1' 에서 ==1로 바꾼 것이죠. 엄격한 비교(===, !==)를 해도 이상 無!
- https://dorey.github.io/JavaScript-Equality-Table/
대충 넘기면 나중에 사소한 부분에서 문제가 발생할 수 있습니다.
정확하게 이해하고 응용&활용하면 됩니다.
예) 구매 수량
var buy_count = 값;
var buy_count = parseInt(값);
var buy_count = parseInt(값) | 0;
시간 관계 상 여기에서 끊습니다.
예외 처리의 한 방법입니다.
예를 들어 구매 수량을 입력받는 폼이 있을 때
값이 입력되지 않았거나, 숫자 값이 아니면 오류가 뜨는데
var buy_count = parseInt(값) || 0;
이런 식으로 처리를 해주면 에러도 피하고,
기본값도 할당되고, 비교도 편해지고 등등 여러모로 편해집니다.
* 물론 해당 입력란에 숫자만 입력되도록 편의 기능을 추가할 수 있지만… (조작 가능)
* 댓글의 댓글이어야 하는데, 이런... 그냥 유지합니다.
0 == 1 은 false 로 해석됩니다.
1 == 1 은 true 로 해석됩니다.
if (0 == 1) -> if (false)
if (1 == 1) -> if (true)
※ 자바스크립트와 php 에서는 true, false 가 예약어로 지정되어 있기 때문에 true, false 로 쓰는 게 더 권장됩니다. (그래서 본문의 예제는 '|| false' 로 쓰는 것이 더 권장됩니다.)
sql 에서는 true, false 가 따로 없기 때문에 1 = 1, 0 = 1 을 쓰기도 합니다.
update table set aa = '1' where 1 = 1