정리해본 자바스크립트 연산자 우선순위는 다음과 같습니다.
자바스크립트 연산자 우선순위 법칙에 따라 코드 한 줄에 비교연산자와 논리연산자가 함께 포함되어 있다면
비교 연산이 먼저 실행되고 그 다음 논리연산자가 실행되게 됩니다.
1. ()
2. 단항 연산자 ( --, ++, ! )
3. 산술 연산자 ( *, /, %, +, - )
4. 비교 연산자 ( >, >=, <, <=, ==, ===, !==, != )
5. 논리 연산자 ( &&, || )
6. 대입(복합 대입) 연산자 ( =, +=, -=, *=, /=, %= )
* 참고 : &&과 || 연산자는 사실 피연산자 중 하나의 값을 반환합니다.
|| 연산자는 피연산자 중 true가 하나라도 포함되어 있으면 true를 반환하며,
&& 연산자는 피연산자중 false가 하나라도 포함되면 false를 반환합니다.
false 로 변환할 수 있는 표현의 예는 다음과 같습니다.
- null
- NaN
- 0
- 빈 문자열 ("", '', ``)
- undefined
[ & vs && , | vs || ]
& 연산자 : 여러 개의 조건 중 하나의 false가 등장하더라도 마지막까지 연산을 계속 수행
| 연산자 : 여러 개의 조건 중 하나의 true가 등장하더라도 마지막까지 연산을 수행
&& 연산자 : 여러 개의 조건 중, 하나라도 false가 등장하면 그 뒷부분은 연산 중지
|| 연산자 : 여러 개의 조건 중, 하나라도 true가 등장하면 그 뒷부분은 연산 중지
(연산결과는 똑같으나 각 변수의 결과값은 다른 값이 나올 수 있는...)
[ &와 |의 연산 차이 ]
(1) &와 &&의 전체연산 결과
(조건1 : true) & (조건2 : true) ----> 결과 : true
(조건1 : true) & (조건2 : false) ----> 결과 : false
(조건1 : false) & (조건2 : true) ----> 결과 : false
(조건1 : false) & (조건2 : false) ----> 결과 : false
(조건1 : true) && (조건2 : true) ----> 결과 : true
(조건1 : true) && (조건2 : false) ----> 결과 : false
(조건1 : false) && (조건2 : true) ----> 결과 : false
(조건1 : false) && (조건2 : false) ----> 결과 : false
공통점 : 되도록 false가 나옴(모든 조건이 true일 때에만 전체 결과를 true로 반환)
(2) |과 ||의 전체연산 결과
(조건1 : true) | (조건2 : true) ----> 결과 : true
(조건1 : true) | (조건2 : false) ----> 결과 : true
(조건1 : false) | (조건2 : true) ----> 결과 : true
(조건1 : false) | (조건2 : false) ----> 결과 : false
(조건1 : true) || (조건2 : true) ----> 결과 : true
(조건1 : true) || (조건2 : false) ----> 결과 : true
(조건1 : false) || (조건2 : true) ----> 결과 : true
(조건1 : false) || (조건2 : false) ----> 결과 : false
공통점 : 되도록 true가 나옴(모든 조건에 false가 등장해야 전체 결과를 false로 반환)
실습으로 체크하기
실습 예습으로 현재 키와 몸무게를 입력하면 적정 체중을 피드백받는 간단한 프로그램을 만들어 봅시다.
만들 때 참고할 적정 체중 계산식은 아래와 같습니다.
적정 체중 = (키 - 100) * 0.9
누가 입력해도 작동하게 하려면 입력할 키와 몸무게는 변수에 저장해야 됩니다.
입력자가 달라져서 키가 바뀌면 적정 체중도 바뀌기에 적정 체중도 변수에 저장되어야 합니다.
질의응답 창 기능은 prompt() 메서드를 사용합니다.
var name = prompt("이름은?", "");
var height = prompt("키는?", "");
var weight = prompt("몸무게는?", "");
var normal_w = (height-100) * 0.9;
var result = weight >= normal_w - 5 && weight <= normal_w + 5;
//오차범위를 포함해서 저 사이이면 참 벗어나면 거짓
result = result? "적정 체중입니다" : "적정 체중이 아닙니다" ; //3항연산자
document.write(name + "님의 결과는 " + result); //출력
※ 평균 판매량을 구하고, 4분기 판매량을 입력하여 평균 판매량의 이상, 미달 값을 출력하기
(아직은 미리 데이터는 입력해둔다)
앞에서 쓴 질의응답 창을 이용하여 제일 최근인 4분기 하나만 판매량을 입력하고,
전 분기 평균 판매량보다 판매량이 높거나 같을 경우 '평균 이상입니다',
낮을 경우 '판매량이 평균 미달입니다' 를 화면에 출력하기
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> 종합실습1-2 </title>
<script>
var avgSales = ( 1200 + 1300 + 1000 ) / 3; //평균 판매량
var fourth = prompt("4분기 판매량은?", "0");
var msg_1 = "판매량이 평균 이상입니다.",
msg_2 = "퍈매량이 평균 미달입니다.";
var result = fourth >= avgSales ? msg_1 : msg_2;
document.write(result);
</script>
</head>
<body>
</body>
</html>
'Javascript' 카테고리의 다른 글
[JS] 자바스크립트 객체 (0) | 2019.12.21 |
---|---|
[JS] 자바스크립트의 화면 출력 방법 정리 (0) | 2019.12.18 |
[JS] 웹 동적 분할 패널 (레이아웃) 만들기 (0) | 2019.12.12 |
자바스크립트 (4) 제어문 (조건문, 반복문) (0) | 2019.11.03 |
자바스크립트 (3) 변수 선언과 초기화, 연산자 (0) | 2019.11.03 |