본문 바로가기
WebDev/JavaScript

[기초]JavaScript 연산자(Operators)

by Naerrow 2024. 8. 23.

자바스크립트 연산자(JavaScript Operators)는 변수와 값을 조작하는 데 사용됩니다. 연산자는 산술 연산, 할당, 비교, 논리, 비트, 문자열, 조건, 콤마, 및 typeof 연산자를 포함합니다. 각 연산자는 고유한 기능을 제공하며, 다양한 프로그래밍 상황에서 유용하게 사용할 수 있습니다.

 

연산자: 산술 연산자, 할당 연산자, 비교 연산자, 논리 연산자, 비트 연산자, 문자열 연산자, 조건 연산자, 콤마 연산자, typeof 연산자, 삭제 연산자, in 연산자, instanceof 연산자 등이 있다.

 

1. 산술 연산자 (Arithmetic Operators)

산술 연산자는 수학적 계산을 수행합니다.

  • 덧셈 ('+'): 두 피연산자를 더합니다.
let sum = 5 + 3;  // 8

 

  • 뺄셈 ('-'): 첫 번째 피연산자에서 두 번째 피연산자를 뺍니다.
let difference = 5 - 3;  // 2

 

 

  • 곱셈 ('*'): 두 피연산자를 곱합니다.
let product = 5 * 3;  // 15

 

  • 나눗셈 ('/'): 첫 번째 피연산자를 두 번째 피연산자로 나눕니다.
let quotient = 5 / 3;  // 1.6666...

 

  • 나머지 ('%'): 첫 번째 피연산자를 두 번째 피연산자로 나눈 후 나머지를 반환합니다.
let remainder = 5 % 3;  // 2

 

  • 거듭제곱 ('**'): 첫 번째 피연산자를 두 번째 피연산자만큼 거듭제곱합니다.
let power = 5 ** 3;  // 125

 

 


2. 할당 연산자 (Assignment Operators)

할당 연산자는 값을 변수에 할당합니다.

  • 기본 할당 ('='): 오른쪽 피연산자를 왼쪽 피연산자에 할당합니다.
let x = 5;

 

  • 덧셈 할당 ('+='): 오른쪽 피연산자를 왼쪽 피연산자에 더하고, 결과를 왼쪽 피연산자에 할당합니다.
let x = 5;
x += 3;  // x = 8

 

  • 뺄셈 할당 ('-='): 오른쪽 피연산자를 왼쪽 피연산자에서 빼고, 결과를 왼쪽 피연산자에 할당합니다.
let x = 5;
x -= 3;  // x = 2

 

  • 곱셈 할당 ('*='): 오른쪽 피연산자를 왼쪽 피연산자에 곱하고, 결과를 왼쪽 피연산자에 할당합니다.
let x = 5;
x *= 3;  // x = 15

 

  • 나눗셈 할당 ('/='): 왼쪽 피연산자를 오른쪽 피연산자로 나누고, 결과를 왼쪽 피연산자에 할당합니다.
let x = 5;
x /= 3;  // x = 1.6666...

 

  • 나머지 할당 ('%='): 왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지를 왼쪽 피연산자에 할당합니다.
let x = 5;
x %= 3;  // x = 2

 

  • 거듭제곱 할당 ('**='): 왼쪽 피연산자를 오른쪽 피연산자만큼 거듭제곱하고, 결과를 왼쪽 피연산자에 할당합니다.
let x = 5;
x **= 3;  // x = 125

 


3. 비교 연산자 (Comparison Operators)

비교 연산자는 두 값을 비교하고, 결과를 불리언 값(true 또는 false)으로 반환합니다.

  • 동등 ('=='): 두 값이 같으면 true를 반환합니다. (타입 변환이 일어남)
let isEqual = (5 == "5");  // true

 

  • 일치 ('==='): 두 값이 같고, 같은 타입이면 true를 반환합니다.
let isStrictEqual = (5 === "5");  // false

 

  • 부등 ('!='): 두 값이 다르면 true를 반환합니다. (타입 변환이 일어남)
let isNotEqual = (5 != "5");  // false

 

  • 불일치 ('!=='): 두 값이 다르거나, 타입이 다르면 true를 반환합니다.
let isStrictNotEqual = (5 !== "5");  // true

 

  • 크다 ('>'): 첫 번째 피연산자가 두 번째 피연산자보다 크면 true를 반환합니다.
let isGreater = (5 > 3);  // true

 

  • 크거나 같다 ('>='): 첫 번째 피연산자가 두 번째 피연산자보다 크거나 같으면 true를 반환합니다.
let isGreaterOrEqual = (5 >= 3);  // true

 

  • 작다 ('<'): 첫 번째 피연산자가 두 번째 피연산자보다 작으면 true를 반환합니다.
let isLess = (5 < 3);  // false

 

  • 작거나 같다 ('<='): 첫 번째 피연산자가 두 번째 피연산자보다 작거나 같으면 true를 반환합니다.
let isLessOrEqual = (5 <= 3);  // false

 


4. 논리 연산자 (Logical Operators)

논리 연산자는 불리언 값을 조합하거나 반전시킵니다.

  • 논리 AND (&&): 두 피연산자가 모두 true이면 true를 반환합니다.
let andResult = (true && false);  // false

 

  • 논리 OR (||): 두 피연산자 중 하나라도 true이면 true를 반환합니다.
let orResult = (true || false);  // true

 

  • 논리 NOT (!): 피연산자의 불리언 값을 반전시킵니다.
let notResult = !true;  // false

 


5. 비트 연산자 (Bitwise Operators)

비트 연산자는 피연산자를 32비트 정수로 변환하고, 비트 단위로 연산합니다.

  • 비트 AND (&): 두 피연산자의 비트가 모두 1이면 1을 반환합니다.
let andBitwise = (5 & 3);  // 1 (0101 & 0011 = 0001)

 

  • 비트 OR (|): 두 피연산자의 비트 중 하나라도 1이면 1을 반환합니다.
let orBitwise = (5 | 3);  // 7 (0101 | 0011 = 0111)

 

  • 비트 XOR (^): 두 피연산자의 비트가 다르면 1을 반환합니다.
let xorBitwise = (5 ^ 3);  // 6 (0101 ^ 0011 = 0110)

 

  • 비트 NOT (~): 피연산자의 비트를 반전시킵니다.
let notBitwise = ~5;  // -6 (~0101 = 1010)

 

  • 왼쪽 시프트 (<<): 피연산자의 비트를 왼쪽으로 시프트하고, 오른쪽에 0을 채웁니다.
let leftShift = (5 << 1);  // 10 (0101 << 1 = 1010)

 

  • 오른쪽 시프트 (>>): 피연산자의 비트를 오른쪽으로 시프트하고, 왼쪽에 부호 비트를 채웁니다.
let rightShift = (5 >> 1);  // 2 (0101 >> 1 = 0010)

 

  • 부호 없는 오른쪽 시프트 (>>>): 피연산자의 비트를 오른쪽으로 시프트하고, 왼쪽에 0을 채웁니다.
let unsignedRightShift = (5 >>> 1);  // 2 (0101 >>> 1 = 0010)

 


6. 문자열 연산자 (String Operator)

문자열 연산자는 주로 문자열 결합에 사용됩니다.

  • 문자열 결합 (+): 두 문자열을 결합합니다.
let greeting = "Hello, " + "World!";  // "Hello, World!"

 


7. 조건 연산자 (Conditional Operator)

조건 연산자는 삼항 연산자라고도 불리며, 조건에 따라 값을 반환합니다.

  • 삼항 연산자 (condition ? expr1 : expr2): 조건이 true이면 expr1을 반환하고, false이면 expr2를 반환합니다.
let age = 18;
let isAdult = (age >= 18) ? "Yes" : "No";  // "Yes"

 


8. 콤마 연산자 (Comma Operator)

콤마 연산자는 여러 표현식을 하나의 표현식으로 결합하고, 마지막 표현식의 값을 반환합니다.

let value = (1, 2, 3);  // 3

 


9. typeof 연산자 (typeof Operator)

typeof 연산자는 피연산자의 자료형을 문자열로 반환합니다.

let type = typeof 42;  // "number"
let typeString = typeof "Hello";  // "string"

 


10. 삭제 연산자 (delete Operator)

delete 연산자는 객체의 속성을 삭제합니다.

let person = { name: "John", age: 30 };
delete person.age;
console.log(person);  // { name: "John" }

 


11. in 연산자 (in Operator)

in 연산자는 객체에 특정 속성이 있는지 확인합니다.

let person = { name: "John", age: 30 };
let hasAge = "age" in person;  // true

 

 


12. instanceof 연산자 (instanceof Operator)

instanceof 연산자는 객체가 특정 클래스의 인스턴스인지 확인합니다.

let date = new Date();
let isDate = date instanceof Date;  // true

 


 

이러한 연산자들을 이해하고 활용하면 자바스크립트에서 다양한 논리와 기능을 구현할 수 있습니다. 각 연산자의 용도를 잘 파악하여 적절히 사용하는 것이 중요합니다.