js 에서 데이터 형식의 bool 값 과 비 교 를 정리 합 니 다.
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/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.