카테고리 없음

Javascript - 연산자 종류 및 특징

만능 엔터테이너 2024. 7. 3. 17:07
728x90
반응형
SMALL

연산자에는 피연산자의 개수에 따라 단항 연산자, 이항 연산자, 삼항 연산자로 분류합니다.

단항 연산자 - +a

이항 연산자 - a + b

삼항 연산자 - ?: (Only 이것만 존재)

 

그룹 연산자 () - 그룹 연산자 ()를 사용하게 되면 계산 순서의 우선 순위가 최우선으로 연산 됩니다.

 

산술 연산자


산술 연산자는 피연산자가 숫자인 연산자로 피연산자가 숫자가 아닐 때는 연산자가 피연산자 타입을 숫자 타입으로 바꾸어 계산합니다. 이때, 연산 결과로는 숫자 값이 나오지만 숫자로 바꿀 수 없거나 계산할 수 없는 값일 경우에 NaN이 출력됩니다.

 

<산술 이항 연산자>

 

+ : 더하기 / A + B / A와 B를 더한 값

- : 빼기 / A - B / A와 B를 뺀 값

* : 곱하기 / A * B / A와 B를 곱한 값

/ : 나누기 / A / B / A와 B를 나눈 값

% : 나머지 / A % B / A와 B를 나눈 나머지 값

 

<산술 이항 연산자 주의사항>

 

1. 정수끼리 나누어도 결과가 부동소수점이 된다.

7 /2 // 3.5

 

2. 나머지 연산자 %의 피연산자는 부동소수점이다.

15 % 4 // 3
5 % 1.5 // 0.5

 

3. + 연산자는 피연산자 중 하나가 문자열이면 나머지 피연산자를 문자열로 만든다.

1 + "2month" // 12month

 

4. 계산할 수 없는 경우에는 NaN으로 평가합니다. 또한 산술 연산자의 피연산자가 true이면 1, false와 null이면 0으로 출력합니다.

0/0 // NaN : 계산할 수 없음
"one" * 1 // NaN : 계산할 수 없음
true + true // 2 : 논리값의 타입을 숫자로 바꾸어 더함
+ null // 1 : null을 0으로 바꾸어 더함
1 + undefined // NaN : undefined를 NaN으로 바꾸어 더함

 

 

<산술 단항 연산자>

 

++ : 증가 연산자  => ++a : a에 1을 더한 다음에 a값을 평가 / a++ : a를 평가한 다음 a에 1을 더한다

-- : 감소 연산자 =>  --a : a에 1을 뺀 다ㅡㅁ에 a 값을 평가 / a-- : a를 평가한 다음 a에서 1을 뺀다

+ : 아무것도 처리하지 않음 => +a / a와 같은 값으로 평가한다

- : 부호 반전 => -a / a의 부호를 반전한 값으로 평가한다

 

<산술 대입 연산자>

+=  / a +=b / a = a + b

-= / a -= b / a = a - b

*= / a *=b / a = a*b

/= / a /=b / a = a / b

%= / a %= b / a = a%b

 

문자열 제어하기


1)  + 연산자는 피연산자가 모두 문자열이면 문자열로 연결합니다.

"Hello" + "World" // "Hello World"
"1" + "2" // "12"

 

2)  피연산 중 하나가 문자열 또는 문자열로 변환할 수 있는 객체라면 다른 피연산자의 타입을 문자열로 바꾼 다음 연결합니다.

10 + "little indians" // "10 little indians"
1 + {} // "1[object Object]""
true + (new DataTransfer()) // "trueTue Sat Aug ..."

 

문자열을 연결하는 방법을 활용하면 변수 값을 문자열로 꾸며 표시할 수 있습니다.

var a = 3;
console.log("a 값은" + a + "입니다."); // a 값은 3입니다.

 

문자열로 작성하고 나서 문자열의 길이와 인덱스를 출력할 수 있습니다.

var msg = "Everything is practice.";
console.log(msg.length); //23
console.log(mag.charAt(3)); // r

 

 

관계 연산자


== / 값이 같음 / a == b / a값과 b 값이 같으면 true, 그 외에는 false

!= / 값이 다름 / a != b / a값과 b 값이 다르면 true, 그 외에는 false

=== / 값과 타입이 같음 / a === b / a와 b의 값과 타입이 같으면 true, 그 외에는 false

!== / 값과 타입이 다름 / a !== b / a와 b의 값과 타입이 다르면 true, 그 외에는 false

< / 작음 / a < b / a 값이 b 값보다 작으면 true, 그 외에는 false

> / 큼 / a > b / a 값이 b 값보다 크면 true, 그 외에는 false

<= / 작거나 같음 / a <= b / a 값이 b 값보다 작거나 같으면 true, 그 외에는 false

>= / 크거나 같음 / a >= b / a 값이 b 값보다 크거나 같으면 true, 그 외에는 false

 

동일 연산자(==) : 좌변과 우변의 피연산자가 같은지만 판별합니다. 비교할 대상의 타입이 서로 다른 경우 같은 타입으로 변경하여 결과값만 비교합니다.

null == undefined // true
1 == "1" // true
"0xff" == 255 // true
true == 1 //true
true == "1" // true
(new String("a")) == "a" // true
(new Number(2)) == 2 // true
[2] == 2 // true

 

일치 연산자(===) : 좌변과 우변의 피연산자를 평가한 후에 타입을 변환하지 않은 상태의 두 값을 엄격하게 비교합니다. 타입과 값이 모두 같으면 같다고 판정하고 하나라도 다를 경우 같지 않다고 판정합니다. 단, NaN은 NaN을 포함한 모든 값과 같지 않다고 판정합니다.

null === undefined // false
1 === "1" // false
"0xff" === 255 // false
true === 1 //false
true === "1" // false
(new String("a")) === "a" // false
(new Number(2)) === 2 // false
[2] === 2 // false

 

 

논리 연산자


&& | 논리 곱 | a && b | a와 b가 모두 true면 true, 그 외에는 false

|| | 논리 합 | a || b | a와 b 중 하나라도 true면 true, 모두가 false면 false

! | 부정 | !a | a와 true면 false, false면 true

 

피연산자 평가되는 값
0, -0, 빈 문자열(""), NaN, null, undefined false
0을 제외한 숫자, 빈 문자열을 제외한 문자열, 모든 객체, 심벌 true

 

논리 곱 연산자와 논리 합 연산자는 단락 평가를 합니다. 단락 평가란 첫 번째 피연산자 값이 표현식을 결정하게 되면 뒤에 있는 피연산자를 평가하지 않는 것을 말합니다. 

var p = null;
p && p.name // null : p가 false로 평가되므로 p를 반환하고 우변은 평가하지 않음
p = { name: "YongHak", age: 23 }
p && p.name // YongHak

 

 

기타 연산자


typeof 연산자 : 단항 연산자이며 피연산자의 데이터 타입을 뜻하는 문자열을 반환

var s = "ABC";
console.log(typeof s); // String

 

조건 연산자(?:) : 주어진 조건의 참과 거짓에 따라 값을 선택

var parity = ( a % 2 == 0)? "짝수" : "홀수"

 

이때, a가 짝수일 때는 "짝수"가 되고 그렇지 않을 경우에는 "홀수"가 출력이 됩니다.

 

쉼표 연산자(,) : 이항 연산자로 왼쪽 피연산자를 평가하고 오른쪽 피연산자를 평가한 이후에 마지막으로 오른쪽 끝 피연산자의 값을 반환합니다. 이를 활용하여 여러 문장을 한 문장으로 표현할 수 있습니다.

i = 0, sum = 0, product = 1;

 

728x90
반응형
LIST