JavaScript - 연산자

Kaydenna92·2022년 5월 9일
0

JavaScript

목록 보기
1/15

Literal : 코드에서 값(value)를 나타내는 표기법

  • 숫자 리터럴 : 123
  • 문자열 리터럴 : '123'
  • boolean 리터럴 : true, false
  • { } : 객체 리터럴
  • : 배열 리터럴
  • template Literal
  • function () {} : 함수 리터럴
  • ...etc

문(statement) : 코드에서 최소 실행 단위

  • 표현식(expressions) : 값으로 평가될 수 있는 문

    1 // 숫자 리터럴 표현식
	1 + 1; // 연산자 표현식
	call(); // 함수 호출 표현식


	let b // 선언문
    b = 2 // 할당문

JavaScript-Operator

  • expressions

let b; // 선언문
b = 2; // 표현식이면서 할당문

// let a = let b; // error! 값 외에는 할당할 수 없기 때문에 let b는 선언문이다.

let a = (b = 2); // b에 2를 할당하게 되면, b라는 변수의 값이 평가가 되고, b의 값이 a에 할당된다.
console.log(a);
  • arithmetic

//산술 연산자 (Arithmetic operators)


console.log(5 + 2); // 7
console.log(5 - 2); // 3
console.log(5 / 2); // 2.5
console.log(5 * 2); // 10
console.log(5 ** 2); // 25
console.log(5 % 2); // 1


// + 연산자 주의점!
let text = '두개의' + '문자를';
console.log(text); // 두개의문자를

text = '1' + 1; // 숫자와 문자열을 더하면 문자열로 변환됨. 이 부분을 조심!
console.log(text); // 11
console.log(typeof text); // string
  • unary

//단항연산자 Unary Operator

// + 양
// - 음
// ! 부정연산자

let a = 5;
a = -a; // = -1 * 5와 같다.
console.log(a); // -5
console.log(-a); // 5

a = -a;
a = +a;

console.log(a);


let boolean = true
console.log(boolean); //true
console.log(!boolean); //false
console.log(!!boolean); //true


console.log(+false); //0
console.log(+null); // 0
console.log(+''); // 0
console.log(+true); // 1
console.log(+'text'); // NaN
console.log(+undefined); // NaN

console.log(!!1) // ! 부정연산자
// !! 값을 boolean 타입으로 변환함.
  • assignment

// 할당연산자 (Assignment operators)

let a = 1;
a = a + 2;
console.log(a); // 3


a += 2 // a = a + 2; 축약버전
console.log(a); // 5

a -= 2
console.log(a);

a *= 2
console.log(a);

a /= 2
console.log(a);

a %= 2
console.log(a);

a **= 2
console.log(a);
  • increment

// 증가 & 감소 연산자 Increment & Decrement Operators
let a = 0;
console.log(a);

a++; // a = a + 1
console.log(a);

a--; // a = a - 1;
console.log(a);

// 주의 사항
// 뒤에다가 ++, -- 하는 경우 -> 필요한 연산을 하고, 그 뒤에 값을 증가시킴
// 앞에다가 ++, -- 하는 경우 -> 값을 먼저 증가하고, 필요한 연산을 한다.

a = 0
let b = a++; // 할당 연산 후 a가 증가한다.
console.log(b); // 0
console.log(a); // 1

a = 0
let c = ++a; // a의 값을 먼저 증가시키고, 필요한 연산을 한다. 
console.log(c); // 1
console.log(a); // 1

c = 0;
console.log(c++); // 0
console.log(c); // 1
  • relational

// 대소 관계 비교 연산자 Relational operators


// > 크다
// < 작다
// >= 크거나 같다
// <= 작거나 같다

console.log(2 > 3);
console.log(2 < 3);
console.log(2 >= 3);
console.log(2 <= 3);
  • priority

let a = 2
let b = 3
let result = a + b * 4 // 연산자도 우선순위가 있다.
console.log(result); // 14

result = (a + b) * 4 //a + b를 우선으로 하고 싶다면 괄호로 묶기.
console.log(result) // 20

result = a++ + b * 4 // 
console.log(result); // 14
  • equality

// 동등 비교 관계 연산자 (Equality operators)

// ==  값이 같음
// != 값이 다름
// === 값과 타입이 둘 다 같음
// ! == 값과 타입이 다름

console.log(2 == 2);
console.log(2 != 2);
console.log(2 != 3);
console.log(2 == 3); 

console.log(2 == '2'); // true
console.log(2 === '2'); // false

console.log(1 == true); // true
console.log(1 === true); //false

console.clear()

const obj1 = {
    name : 'js',
};

const obj2 = {
    name : 'js',
};

console.log(obj1 == obj2); // 메모리 주소가 다르기 때문에 false
console.log(obj1 === obj2); // 값 자체가 다르기 때문에 false

console.log(obj1.name == obj2.name); // true
console.log(obj1.name === obj2.name); // true

let obj3 = obj2 ;

console.log(obj3 == obj2); // true 값도, 타입도 같기 때문에 true!
console.log(obj3 === obj2); // true
profile
persistently

0개의 댓글