Boolean 객체는 불리언 값을 감싸고 있는 객체입니다.
설명
첫 번재 매개변수로서 전달한 값은 필요한 경우 불리언 값으로 변환됩니다. 값이 없거나 0, -0, null, false, NaN, undefined, 빈 문자열 ("")이라면 객체의 초기값은 false가 됩니다. 문자열 "false"를 포함한 그 외 모든 다른 값은 초기값을 true로 설정합니다.
Boolean 객체의 true와 false 값을 원시 Boolean 값 true, false와 혼동해선 안됩니다.
값이 undefined, null이 아닌 모든 객체는 조건문에서 true로 계산됩니다. 이는 값이 false인 Boolean 객체도 포함합니다. 즉 아래 if 문의 조건은 참입니다.
var x = new Boolean(false);
if (x) {
// 이 코드는 실행됨
}
그러나 원시 Boolean 값에는 적용되지 않습니다. 따라서 아래 if 문의 조건은 거짓입니다.
var x = false;
if (x) {
// 이 코드는 실행되지 않음
}
불리언이 아닌 값을 변환할 때 Boolean 객체를 사용해선 안됩니다. 대신 Boolean 함수를 사용하세요.
var x = Boolean(expression); // 추천
var x = new Boolean(expression); // 사용하지 말것
값이 false인 Boolean 객체를 포함한 어떠한 객체를 Boolean 객체의 초기값으로 넘겨주더라도 새로운 Boolean 객체는 true를 가집니다.
var myFalse = new Boolean(false); // 초기값 거짓
var g = Boolean(myFalse); // 초기값 참
var myString = new String('Hello'); // 문자열 객체
var s = Boolean(myString); // 초기값 참
Boolean 원시 값의 자리에서 Boolean 객체를 이용해선 안됩니다.
생성자
Boolean()Boolean객체를 생성합니다.
속성
Boolean.length- 값이 1인 길이 속성.
Boolean.prototypeBoolean생성자의 프로토타입을 나타냅니다.
메서드
전역 Boolean 객체는 자신만의 메서드를 가지고 있지 않지만, 프로토타입 체인을 따라 상속받는 메서드가 일부 존재합니다.
Boolean 인스턴스
모든 Boolean 인스턴스는 Boolean.prototype을 상속받습니다. 다른 생성자와 마찬가지로 프로토타입 객체가 인스턴스의 상속 속성과 메서드를 결정합니다.
속성
Boolean.prototype.constructor- 인스턴스의 프로토타입을 생성한 함수를 반환합니다. 기본값은
Boolean함수입니다.
메서드
Boolean.prototype.toSource()Boolean객체의 소스를 포함한 문자열을 반환합니다. 반환 문자열을 사용해 동일한 객체를 생성할 수 있습니다.Object.prototype.toSource()메서드를 재정의합니다.Boolean.prototype.toString()- 객체의 값에 따라 문자열
"true"또는"false"를 반환합니다.Object.prototype.toString()메서드를 재정의합니다. Boolean.prototype.valueOf()Boolean객체의 원시 값을 반환합니다.Object.prototype.valueOf()메서드를 재정의합니다.
예제
false 값으로 초기화한 Boolean 객체 만들기
var bNoParam = new Boolean();
var bZero = new Boolean(0);
var bNull = new Boolean(null);
var bEmptyString = new Boolean('');
var bfalse = new Boolean(false);
true 값으로 초기화한 Boolean 객체 만들기
var btrue = new Boolean(true);
var btrueString = new Boolean('true');
var bfalseString = new Boolean('false');
var bSuLin = new Boolean('Su Lin');
var bArrayProto = new Boolean([]);
var bObjProto = new Boolean({});
명세
| Specification |
|---|
| ECMAScript (ECMA-262) The definition of 'Boolean' in that specification. |
브라우저 호환성
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Boolean | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 3 | Opera Full support 3 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 | nodejs Full support 0.1.100 |
Boolean() constructor | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 3 | Opera Full support 4 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 | nodejs Full support 0.1.100 |
toSource | Chrome No support No | Edge No support No | Firefox
No support
1 — 74
| IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android Full support 4 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No | nodejs No support No |
toString | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 3 | Opera Full support 4 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 | nodejs Full support 0.1.100 |
valueOf | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 4 | Opera Full support 4 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 | nodejs Full support 0.1.100 |
Legend
- Full support
- Full support
- No support
- No support
- Non-standard. Expect poor cross-browser support.
- Non-standard. Expect poor cross-browser support.
- See implementation notes.
- See implementation notes.