Javascript에는 데이터 조작에 쓸 수 있는 연산자가 여러가지 존재한다.
연산자 계산 순서
단항 연산자( !, ++, --)
→ 산술 연산자
→ 비교 연산자
→ 논리 연산자
→ 할당 연산자
산술연산자
[ 증감연산자 ]
피연산자의 앞에 쓸 수도 있고 뒤에 쓸수도 있다. 증가는 ++
를 사용하고 감소는 --
를 사용한다.
- 증감 연산자의 위치
ex) ++a
-증감연산자가 피연산자 앞에 위치
-전체 수식 처리하기 전에 적용됨ex) a++
-증감연산자가 피연산자 뒤에 위치
-전체 수식의 처리가 끝난 뒤 적용됨
현재 경우엔 수식이 없어서 앞에 위치하거나 뒤에 위치하거나 결과가 똑같다.
연산자가 피연산자 앞에 위치하게 되면 수식 처리하기 전에 적용되기 때문에 21이 되고 합한 결과값은 23이된다.
[ 나머지 연산자 ]
나누기 후 나머지를 구하는 연산자는 %
를 사용한다.
그래서 숫자의 배수를 구할때 사용하고 특히 2로 나눴을때 나머지가 1이면 홀수, 0이면 짝수기 때문에 열에 색깔을 주는 경우에 사용한다.
논리 연산자
[ NOT 연산자 ]
논리 NOT – 논리 NOT 연산자는 !
로 표시하며 모든 값에 적용할 수 있다. 논리 NOT 연산자는 데이터 타입에 관계 없이 항상 Boolean값을 반환한다. 쉽게 말해 true와 false값을 반대로 변경해 리턴한다.
- 피연산자가 객체이면 false 반환
- 피연산자가 빈 문자열이면 true 반환
- 피연산자가 비어 있지 않은 문자열이면 false 반환
- 피연산자가 숫자 0이면 true 반환
- 피연산자가 0이 아닌 숫자라면 false 반환
- 피연산자가 null이면 true 반환
- 피연산자가NaN이면 true 반환
- 피연산자가 undefined이면 true 반환
Boolean은 빈문자열("", ''), 0, null, undefined 일때 false를 반환하는데 !
사용시 true를 반환한다. Boolean값 강제로 true, false로 하고싶을때 true = !!{} 이런식으로 사용한다.
[ AND 연산자 ]
AND는 &&
를 사용한다.
x && y가 true가 나오는경우는 x와 y가 둘다 true여야 가능하다.
""
가 빈값이므로 false를 반환하고 하나라도 false인 경우 false값을 반환하기 때문에 false값을 반환한다.
[ OR 연산자 ]
OR은 ||
을 사용한다. x || y 하나만 true여도 결과는 true값을 리턴한다.
비교 연산자
[ 관계 연산자 ]
관계 연산자에는 미만(<)과 초과(>), 이하(<=), 이상(>=) 연산자가 있다. 이들 관계 연산자는 학생 때 수학 시간에 배웠을 방식으로 두 값을 비교한다. 각 연산자는 Boolean 값을 반환한다.
세값을 한번에 비교하는건 잘못된 예이다. 이경우 true값이 반환된다. 그래서 AND
연산자를 사용해 비교한다.
[ 동등 연산자 == ]
동등연산자는 ==
을 사용한다. 자바스크립트엔진이 false를 0으로, true를 1로 강제형변환하고 문자타입은 숫자타입으로 강제형변환한다. 그래서 예상치못한 값이 나올수 있는 경우가 생길 수 있다.
[ 일치 연산자 === ]
일치연산자는 ===
을 사용한다. 강제형변환을 하지 않으며 데이터타입과 데이터모양이 모두 같아야 true값을 반환한다.
세개의 피연산자를 취할 수 있는 유일한 연산자
[3항 연산자]
JavaScript에서 세 개의 피연산자를 취할 수 있는 유일한 연산자이다. 그래서 다재다능하게 쓰인다.
문법: var 변수 = 조건 ? 첫번째데이터 : 두번째데이터
조건이 true이면 첫번째데이터를 변수에 넣고 false이면 두번째데이터를 변수에 넣는다. 이런식으로 첫번째 데이터,두번째 데이터를 경우에 따라 변수에 다르게 넣어주고 싶을때 사용한다.
이경우 iNum1
값이 iNum2
값보다 작다. 잘못된 조건이기 때문에 조건은 false값을 반환하고, 두번째 데이터를 변수 iMax
에 넣게된다.
빈문자열을 제외한 모든 문자열은 true로 인식함으로 첫번째데이터를 sDefaultName
에 넣는다. 변수에 gender
속성은 없기때문에 gender 조건은 false값을 반환하게 되어 두번째 데이터를 sDefaultGender
에 값을 넣게되고, name
속성은 정의되어 있기 때문에 true값을 반환하게 된다.
'Fiori > UI5' 카테고리의 다른 글
[JavaScript] 함수와 매개변수 (2) | 2023.03.06 |
---|---|
[JavaScript] 제어문 (0) | 2023.03.06 |
[JavaScript] 형변환 내장함수 (0) | 2023.03.06 |
[JavaScript] 변수와 데이터 타입 (0) | 2023.03.06 |
[WEB] HTML & CSS 3 (0) | 2023.03.06 |
댓글