0 == 1 조건 의미?

0 == 1 조건 의미?

QA

0 == 1 조건 의미?

본문

위 질문에 채택된  님 답변에 있더라구요. 무슨 의미인지?

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;

 

시간 관계 상 여기에서 끊습니다.

자세한 설명 감사합니다.
PS.
채택된 답변 보면 숫자 0앞에 ||인데,
막대가 2개이면 뒤의 == 연산자가 우선 적용되지 않나요?
아래처럼 막대기 한개가 의도하신 건가요?
if ( parseInt(<?php echo $member['mb_6'] ?>)|0 == 1) {

아이고! 빠졌네요. 오탈자 주의!

parseInt(값)||0 이 맞습니다.

제대로 묶어야겠네요.

(parseInt(값)||0) == 1

+ Operator precedence
- 영 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
- 한 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/%EC%97%B0%EC%82%B0%EC%9E%90_%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84

( ^ ___________ ^ ) ===b

PS.
근데, ||0 넣는 이유를 모르겠네요.
0과 1은 같지 않으니까 무조건 무시되는 부분으로 보이는데..
오직, parse... 부분이 1인 경우만 실행되는 것 같은데...

예외 처리의 한 방법입니다.

 

예를 들어 구매 수량을 입력받는 폼이 있을 때

값이 입력되지 않았거나, 숫자 값이 아니면 오류가 뜨는데

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

답변을 작성하시기 전에 로그인 해주세요.
전체 2,512
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT