[Javascript] 연산자의 종류와 우선순위(Part.2 논리 연산자와 우선순위)

신세원·2020년 9월 9일
0

javascript

목록 보기
10/19
post-thumbnail
post-custom-banner

설명에 들어가기 앞서 이야기했던 용어를 정리하고 들어가겠습니다.

연산자란 무엇인가? 들어가기 앞서 용어 정리를 간단하게 짚고 넘어 가야될거 같다.

  • 피연산자: 3+5라는 수식이 있다. 이때 3,5는 피연산자 즉,연산을 당하는 것.
    숫자와 문자열 또는 객체가 될 수도 있다.
  • 연산자: '+'는 연산자라고 부른다. 어떠한 피연산자를 연산하는 것. 예로,(+,-,*)이 있다.

  • 논리값: 참과 거짓, javascript에서는 true,false로 나타낸다.

  • 단항 연산자: 하나의 값에 연산자를 붙이는 것. ex)a++,++b,-a 등이 있다


논리 연산자(Logival Oprator)

1. && (AND 연산자)

AND연산자는 두개의 &&기호로 표시되며 두 피산연자가 모두 참일 경우 true이며, 그렇지 않을 경우 false를 반환한다.

result = true && true;
console.log(result);	// true

1.1 && (AND 연산자) 예제

a1 = true  && true       // t && t returns true
a2 = true  && false      // t && f returns false
a3 = false && true       // f && t returns false
a4 = false && (3 == 4)   // f && f returns false
a5 = 'Cat' && 'Dog'      // t && t returns "Dog"
a6 = false && 'Cat'      // f && t returns false
a7 = 'Cat' && false      // t && f returns false
a8 = ''    && false      // f && f returns ""
a9 = false && ''         // f && f returns false

숫자 1은 true, 숫자 0은 false로 처리된다.

1.2 AND연산자의 구동방식

// 1. 왼쪽부터 False 값을 찾아나간다.
// 2. False값을 찾은 경우, 해당값을 반환한다.
// 3. 마지막에 도달할 경우, 마지막 값을 반환한다.

true && true; // true
true && false; // false
false && true; // false
false && false; // false
true && "231" && 0 && 300; // 0

1.3 AND연산자 사용시 주의사항

&&||를 실행한 결과값이 항상 true아니면 false라고 잘못 알고 있는 경우가 매우 많다.

const something = true || false;
console.log(something); // true;

const somethingElse = true && 100;
console.log(somethingElse); // 100

somethingElsetrue로 나올 것이라 예상을 하지만 somethingElse는 100이라는 숫자를 담게 된다.

&&(AND연산자)는 ||(OR연산자)보다 우선순위가 높다.
a && b || c && d = (a && b) || (c && d)와 같다.

|| (OR연산자)

OR연산자는 두개의 ||(역슬래쉬 기호)로 표시된다.

result = a || b;

인수 중 하나라도 true가 있으면 true를 반환하고 그렇지 않으면 false를 반환한다.

1.1 OR연산자 예제

o1 = true  || true       // t || t returns true
o2 = false || true       // f || t returns true
o3 = true  || false      // t || f returns true
o4 = false || (3 == 4)   // f || f returns false
o5 = 'Cat' || 'Dog'      // t || t returns "Cat"
o6 = false || 'Cat'      // f || t returns "Cat"
o7 = 'Cat' || false      // t || f returns "Cat"
o8 = ''    || false      // f || f returns false
o9 = false || ''         // f || f returns ""
o10 = false || varObject // f || object returns varObject

OR연산자는 두 피연산자가 모두 false일 때를 제외하고는 항상 true다. 피연산자가 boolean이 아닌 경우, 평가를 위해 boolean으로 변환된다.

if (1 || 0) { 	// if( true || false )처럼 동작
  alert( 'truthy!' );
}

위와 같이 숫자 1은 true, 숫자 0은 false로 처리된다.

1.2 OR연산자 구동 방식

// 1. 왼쪽부터 True 값을 찾아나간다.
// 2. True값을 찾은 경우, 해당값을 반환한다.
// 3. 마지막에 도달할 경우, 마지막 값을 반환한다.

true || true; // true
true || false; // true
false || true; // true
false || false; // false
false || "" || 500 || 300; // 500

! (NOT연산자)

NOT연산자는 !(느낌표)로 표시된다.

n1 = !true               // !t returns false
n2 = !false              // !f returns true
n3 = !''                 // !f returns true
n4 = !'Cat'              // !t returns false

피연산자를 boolean 유형으로 변환하여 true/false로 값을 나눈 후 그 결과값의 반대값을 반환한다.

alert( !!"non-empty string" ); 	// true
alert( !!null ); 		 // false

!!를 이용하여 이중으로 NOT을 사용할 수 있다.

연산자 우선순위

Javascript 우선순위 순서는
괄호()->증감 연산자->산술 연산자->비교 연산자->논리 연산자->대입 연산자 순이다
괄호가 가장 순위가 높다.
NOT 논리 연산자는 산술 연산자보다 우선순위가 높다.

아래는 우선순위 순서를 비트 연산자를 제외하고 비교한 표이다.

profile
생각하는대로 살지 않으면, 사는대로 생각하게 된다.
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 11월 26일

잘 봤습니다.

답글 달기