본문 바로가기
[ Developer ]/JavaScript

[JavaScript] 자바스크립트 논리형

by 김현섭. 2016. 10. 31.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
논리형 (Boolean 불린)
자바스크립트 불린(boolean) 자료형에는 참(true)과 거짓(false)라는 두 개의 값밖에 없다.

보통 불린 값은 비교의 결과에 해당하며 자바스크립트의 제어 구조에 사용된다.



논리형 변환
불린 값이 숫자 연산에 사용되면 참은 숫자 1로, 거짓은 숫자 0으로 변환된다. 다음 예제를 보자.

1
2
3
4
5
6
<script type="text/javascript">
    var boolean1 = true;            
    var boolean2 = false;   
    console.log(0 + boolean1);  // 1
    console.log(0 + boolean2);  // 0
</script>
cs

불린 값이 문자열 연산에 사용되면 참은 "true"라는 문자열로, 거짓은 "false"라는 문자열로 변환된다. 다음 예제를 보자.

1
2
3
4
5
6
<script type="text/javascript">
    var boolean1 = true;            
    var boolean2 = false;   
    console.log("" + boolean1); // "true"
    console.log("" + boolean2); // "false"
</script>
cs

불린 값이 예상되는 곳에 숫자가 사용되면 해당 숫자가 거짓으로 변환되는 0이나 NaN이 아닌 이상 참으로 변환된다. 다음 예제를 보자.

1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
    var number1 = 1;            
    var number2 = -1;
    var number3 = 0;
    var number4 = NaN;
    console.log(!!number1);     // true
    console.log(!!number2);     // true
    console.log(!!number3);     // false
    console.log(!!number4);     // false
</script>
cs

불린 값이 예상되는 곳에 문자열이 사용되면 거짓으로 변환되는 빈 문자열인 경우를 제외하고 해당 문자열은 참으로 변환된다. 다음 예제를 보자.

1
2
3
4
5
6
7
8
<script type="text/javascript">
    var string1 = "abc";            
    var string2 = "false";          
    var string3 = "";           
    console.log(!!string1);     // true
    console.log(!!string2);     // true
    console.log(!!string3);     // false
</script>
cs

null과 undefined 값은 거짓으로 변환되며 널이 아닌 객체나 배열, 함수는 참으로 변환된다. 다음 예제를 보자.

1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
    var var1 = null;
    var var2 = undefined;
    var var3 = [];      // 빈 배열
    var var4 = {};      // 빈 객체
    console.log(!!var1);    // false
    console.log(!!var2);    // false
    console.log(!!var3);    // true
    console.log(!!var4);    // true
</script>
cs


Boolean() 생성자 이용 변환

불린 값으로 변환하는 명시적인 방법은 Boolean() 생성자를 호출하는 것이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
    console.log(Boolean(1));    // true
    console.log(Boolean(-1));   // true
    console.log(Boolean(0));    // false
    console.log(Boolean(NaN));  // false
    console.log(Boolean("abc"));    // true
    console.log(Boolean("false"));  // true
    console.log(Boolean(""));   // false
    console.log(Boolean(null)); // false
    console.log(Boolean(undefined));// false
    console.log(Boolean([]));   // true
    console.log(Boolean({}));   // true
</script>
cs