[드림코딩 JS 마스터리] 연산자(expressions, arithmetic, unary, assignment, increment, relational, priority, equality)

Jessie H·2022년 5월 16일
0
post-thumbnail

png created by here

expressions 표현식, 선언문, 할당문

let mydrink = 'milktea';//선언문
mydrink = 'americano';//표현식, 할당문

let yourdrink = mydrink = 'americano'; //도 가능


//선언문끼리는 선언할 수 없다
let mycake = let yourcake = 'chocolate';(x)


arithmetic 산술연산자

+ 더하기
- 빼기
* 곱하기
%나눗셈의 나머지
/ 나눗셈


** 제곱(ECMA 7부터 적용) OR Math.pow(제곱할 숫자, 몇제곱할지)
arithmetic의 우선순위는 일반 계산식과 동일
*/이 우선, 그 다음에 +, -계산하는 순서

** +는 문자열끼리 연결할 때도 사용된다

console.log('milk'+'tea');
//milktea


Unary 단항연산자

+
-
! 부정

let mywallet = 5000;
mywallet = -mywallet;
console.log(mywallet);//-5000

mywallet = +mywallet;
console.log(mywallet);//-5000

mywallet = -mywallet;
console.log(mywallet);//5000

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

assignment 할당 연산자

(변수) = (변수) (연산자) (숫자)(변수) (연산자)= (숫자)로 줄이는 것

let mylunch = 5000;

mylunch += 5000;//mylunch = mylunch + 5000;와 같음

mylunch -= 5000;//mylunch = mylunch - 5000과 같음

mylunch *= 5000; //mylunch = mylunch * 5000과 같음

mylunch /= 5000; // mylunch = mylunch / 5000과 같음

mylunch **= 5000; // mylunch = mylunch ** 5000과 같음


increment 증감 연산자

변수++, 변수--, ++변수, --변수
++, --가 뒤에오는 경우: 실행시킨 후 값 증감
++, --가 앞에오는 경우 : 값 증감 후 실행

let a = 1;
let i = 3 + a;//i =4 
let i2 = i++
let i3 = ++i
console.log(i2);
//i2 = 4, i = 5
//i++는 일단 i값을 출력하고 i에 1을 더하라는 뜻, 그래서 4+1해서 5가 됨 
console.log(i3);
//i = 5, i3 = 5+1 = 6
//++i는 i에 일단 1을 더하고 그 담에 i값을 출력하라는 뜻


relational 대소 관계 비교

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

equality 동등 비교

==값이 같다
===값과 타입 모두 같다
!= 값이 같지 않다
!==값과 타입 모두 같지 않다

console.log(2 == '2');//true, 
//2와 숫자 '2'는 타입은 각각 number와 string으로 다르지만 값은 2로 같다

console.log(2 === '2');//false
//2는 number, '2'는 string으로 타입이 다르고, 따라서 같은 값이 될 수 없고 타입

console.log(2 != '2');//false
```!=```은 값만 비교하기 때문에 2로 값이 같은 상태라서 false

console.log(2 !== '2');//true;
```!==```은 값과 타입 모두 비교하기 때문에 값과 타입이 모두 달라 true
console.log(true == 1);
//기본적으로 1은 true를 의미하기 때문에 true는 1과 같은 값으로 인정

console.log(true === 1);
//엄격 비교이기 때문에 true는 boolean, 1은 number로 다른 값과 다른 타입으로 인정

console.log(false == 0);
//기본적으로 0은 flase를 의미하기 때문에 false는 0과 같은 값으로 인정

console.log(false === 0);
//엄격 비교이기 때문에 false는 boolean, 0은 number로 다른 값과 다른 타입으로 인정

object에서 비교
let object1 = {
	name: 'hi',
}

let object2 = {
	name: 'hi',
}

console.log(object1 == object2);//false
//object1의 데이터 주소와, object2의 데이터 주소가 다르기 때문에 값이 다름

console.log(object1 === object2);//false
//object1의 데이터 주소와, object2의 데이터 주소가 다르기 때문에 값과 타입 모두 다름

console.log(object1.name == object2.name);
//둘 다 'hi'로 같은 값이니까 true

console.log(object1.name === object2.name);
//둘다 hi이고 string으로 타입도 같아서 true

let object3 = object2;

console.log(object3 == object2);//true
// 둘다 데이터 주소가 같으니까 값이 같은 걸로 인정되어서 true

console.log(object3 === object2);//true
//둘 다 데이터 주소가 같으니까 값도 타입도 같은 걸로 인정되어서 true
profile
코딩 공부 기록장

0개의 댓글