js 에서 데이터 형식의 bool 값 과 비 교 를 정리 합 니 다.

2692 단어
먼저 알 아야 할 것 은 js 중 6 개의 값 이 false 이 고 각각 0, ', null, undefined, NaN 과 false 이 며 기타 ({}, [], Infinity 포함) 는 true 입 니 다.
Boolean () 함 수 를 사용 하거나 비 리 를 두 번 취하 면 대상 의 불 값 을 얻 을 수 있 습 니 다. 예 를 들 어 Boolean (undefined) 과!!undefined 역시 불 값 false 를 얻 을 수 있 습 니 다.
0, ', null, undefined, NaN, {}, [], Infinity 구 불 값 은 각각 false false false false true true 입 니 다.
그래서 우리 가 아 는 것 은 대상 의 불 값 은 true 이 고 대상 {} 이라도.
또한, 서로 다른 대상 은 false 로 되 돌아 가 며, 같은 대상 을 인용 해야만 true 로 돌아 갑 니 다. 예 를 들 어:
var a = b = {};

console.log(a==b) ; //true

console.log({}=={}); //false

console.log([]==[]); //false,  [] object

또 주의해 야 할 것 은:
 console.log(new Boolean(false)==false);   //true
 console.log(new Boolean(true)==true);   //true

 
또한 js 에는 Boolean 대상 이 있 습 니 다. 예 를 들 어 new Boolean (false) 을 통 해 초기 값 이 false 인 불 대상 을 얻 을 수 있 지만 new Boolean () 으로 가 져 올 수 없습니다.
대상 의 불 값, 그 렇 기 때문에 우 리 는 새로운 불 대상 이 되 었 습 니 다. 대상 이 라면 우리 가 얻 은 것 은 영원히 true 입 니 다. 그래서 불행 하 게 도...
if (new Boolean (false) {/ 이 안의 코드 는 반드시 실 행 됩 니 다. 불 대상 의 값 이 false} 이 더 라 도 다시 한 번 강조 합 니 다.
 
만약 0, ',', null, undefined, NaN, {}, [], Infinity, false, true 가 서로 비교 (실행 = = 연산) 하면 어떻게 될까요?
   function k(r){
      console.log(r,": ", r==false,r==true,r==0,r=='',r==undefined,r==null,r==NaN,r==Infinity,r=={},r==[]);
   }

   k(true);
   k(false);
   k(0);
   k('');
   k(undefined);
   k(Infinity);
   k(NaN);
   k({});
   k([]);

 
   null 을 매개 변수 로 함수 에 전달 할 때 undefined 에 들 어 가 는 것 과 같 기 때문에 null 에 대한 검 사 는 k 함수, 즉 함수 내부 에서 r = null 을 수정 해 야 합 니 다.
결과 (결 과 는 열거 하지 않 음) 에서 약간의 결론 을 얻 을 수 있다.
1. 0, ',', [], false 는 서로 비교 (자신 과 비교 포함) 하고 모두 true 로 돌아 가 다른 값 과 비교 하여 false 로 돌아 갑 니 다.
2. undefined 와 null 은 서로 비교 하여 true 로 돌아 가 고 자신 과 비교 해도 true 로 돌아 가 며 다른 상황 은 false 로 돌아 갑 니 다.
3. 인 피 니 티 는 자신 과 비교 하여 true 로 돌아 갑 니 다.
4. NaN, {} 과 임의의 값 을 비교 하면 false 로 돌아 갑 니 다.
5. true = = true 를 제외 하고 true 와 다른 값 은 0 이 아 닌 숫자 라 도 빈 문자열 이 아 닌 빈 대상 이 아 닌 빈 배열 은 false 로 돌아 갑 니 다.
 
 
전재 출처 밝 히 기:http://www.cnblogs.com/suspiderweb/

좋은 웹페이지 즐겨찾기