[javascript] 부울 결과를 숫자 / 정수로 변환

나는 저장하는 변수가 falsetrue있지만, 내가 필요 0하거나 1대신, 각각. 어떻게해야합니까?



답변

자바 스크립트에는 다음과 같은 삼항 연산자가 있습니다.

var i = result ? 1 : 0;


답변

단항 +연산자를 사용하면 피연산자가 숫자로 변환됩니다.

+ true; // 1
+ false; // 0

물론 클라이언트 측 코드의 내용에 관계없이 사용자가 서버로 데이터를 보낼 수 있기 때문에 서버 측의 데이터를 계속 삭제해야합니다.


답변

최고의 솔루션은 다음과 같습니다.

fooBar | 0

정수형을 강제하기 위해 asm.js에서 사용됩니다.


답변

숫자 기능을 선호 합니다 . 객체를 가져와 숫자로 변환합니다.

예:

var myFalseBool = false;
var myTrueBool = true;

var myFalseInt = Number(myFalseBool);
console.log(myFalseInt === 0);

var myTrueInt = Number(myTrueBool);
console.log(myTrueInt === 1);

jsFiddle 에서 테스트 할 수 있습니다 .


답변

내가 만든 JSperf의 모든 제안 답변의 비교.

TL; DR-현재 모든 브라우저에 가장 적합한 옵션은 다음과 같습니다.

val | 0;

.

최신 정보:

요즘에는 Number()기능이 가장 느리지 만 가장 좋은 기능을 제외하고는 모두 거의 동일합니다 val === true ? 1 : 0;.


답변

입력하는 방법은 다음과 같습니다.

Number(true) // 1
Number(false) // 0


답변

나는 오늘이 지름길을 만났다.

~~ (참)

~~ (거짓)

내가 설명 할 수있는 것보다 훨씬 똑똑한 사람들 :

http://james.padolsey.com/javascript/double-bitwise-not/