NATIVE

settings_applicationsObject  >   settings_applicationsBoolean  >   settings_applicationsConstructor

NATIVE

Editing
  • account_tree
  • bug_report

booleanbooleanBoolean(AnyTypevalue])

불리언(boolean) 데이터를 생성하는 생성자 함수이다.

설명

new 연산자를 이용해서 생성한 데이터와 리터럴(Lieteral)로 생성한 데이터의 true, false 값은 근본적으로 다르다. 좀 더 자세한 내용은 아래의 기술 문서를 보길 바란다.

구문

형식
new Boolean(value)

매개 변수

AnyTypevalue선택

불리언(boolean)으로 평가할 데이터를 지정한다.

반환

booleanboolean

평가 결과를 반환한다.

예제

(1) new Boolean(false) 테스트
(2) Boolean(false) 테스트

조건식은 모두 false로 평가되어 콘솔에 아무것도 출력하지 않는다.

상속 계층 탐색

Function

  • Properties

    • arguments

      함수에 전달된 인수를 조회한다. 유사 배열로 참조되며 인덱스로 접근이 가능하다.

    • caller

      지정된 함수를 호출한 함수를 참조한다. strict 모드에서는 사용할 수 없다.

    • length

      함수에 사용 되고 있는 인수의 개수를 조회한다.

    • name

      함수 이름을 조회한다.

    • prototype

      생성자 함수(constructor function)에 의해 생성된 인스턴스(instance)에게 상속되어지는 생성자의 프로토타입을 나타낸다.

  • Methods

    • apply()

      지정된 this와 제공된 인수를 가진 배열 또는 유사 배열로 함수를 호출한다.

    • bind()

      원본 함수와 동일한 본문을 갖는 바인딩된 함수를 만든다. this 키워드가 있는 경우 실제로 자신을 참조할 수 있도록 활성화된다.

    • call()

      인수를 지정하여 함수를 호출한다.

    • toString()

      함수의 소스 코드를 반환한다.

Object

  • Methods

    • hasOwnProperty()

      객체가 특정 프로퍼티를 가지고 있는지를 블린(boolean) 값으로 반환한다.

    • isPrototypeOf()

      해당 객체가 다른 객체의 프로토타입 체인에 속한 객체인지를 체크한다.

    • propertyIsEnumerable()

      매개 변수의 속성이 열거가능(enumerable)한지 여부를 체크한다.

    • toLocaleString()

      객체를 나타내는 문자열을  작동하는 지역(locale)의 방식으로 출력이 된다.

    • toString()

      객체를 나타내는 문자열을 반환한다.

    • valueOf()

      객체의 원시(primitive) 값을 반환한다.

  • Properties

    • constructor

      객체의 생성자 함수를 참조한다.

    • __proto__

      상속된 [[Prototype]] 참조하거나 설정가능하며 일반적으로 실제 코드상에서는 잘 사용되지 않는다. ECMAScript에서 사용되지 않는 비표준이지만 최신 웹브라우저에서는 비공식적으로 지원하고 있다. 따라서 곧 표준 속성으로 지원될 확률이 높다.

      현재는 표준 사양에 명시되었다.

기술 문서

ECMAScript 에서는 데이터를 생성할 때 대부분 리터럴(Literal)을 지원한다. 하지만 Boolean() 생성자 함수를 new 연산자를 이용한 방식으로 직접적인 boolean을 생성자 함수의 인수로 사용시 주의할 필요가 있다. 예를 들어서 다음과 같은 코드가 있다.

var allow = false;
if(allow) console.log("OK Literal"); // ignore
if(new Boolean(false)) console.log("OK Constructor");
//-->OK Constructor

위 코드에서 allow 변수에는 분명히 false가 대입되었다. 하지만 아래의 if 조건문에서 불리언(boolean)으로 평가되는 값은 실제로 true로 처리된다.

위와 같은 결과에 대해 조심할 필요가 있으며 좀더 확실한 방법은 new 연산자를 이용하지 않고 데이터를 생성하는 것이다. 즉 아래와 같이 코드를 바꾸면 된다.

var allow = false;
if(allow) console.log("OK Literal"); // ignore
if(Boolean(false)) console.log("OK Constructor"); // ignore

이렇게 하면 if 조건문에서 평가되는 불리언(boolean)은 false이다.

결론적으로 이야기한다면 리터럴로 생성하는 방식이 적극 권장되며 인스턴스 방식을 사용하고자 한다면 new 연산자 없이 사용하면 될 것이다. 

버전 명세

ECMAScript 2024(15th Edition)
#sec-boolean-constructor

지원 웹브라우저