📌 연산자(operators)

  1. 피연산자값의 갯수와 타입
  2. 동작
  3. 연산결과 값과 타입

📌 산술연산자(Arithmetic operators)

📍1. 산술 연산자는 두 개의 숫자 값(리터럴 또는 변수)을 피연산자로 받아서 하나의 숫자 값을 반환합니다.
📍2. 표준 산술 연산자는 더하기(+), 빼기(-), 곱하기(*), 나누기(/)입니다.

📍"+ " 덧셈연산자(Addition assignment)

피연사자 중에 문자열이 어느 한쪽에라도 있으면 결과는 문자열 undefined와 같이 연산이 불가능한 값끼리 연산되면 결과는 NaN 이라는 값이 나온다.

console.log("=====덧셈연산자====");
//number +number ==> number
console.log(' 10+20:', 10 + 20);
//string + string ==> string
console.log('10' + '안녕');

// string + undefined ==> string
console.log(undefined + '안녕');

//string + number ==> string
console.log(10 + '안녕');
console.log('50' + 50);
console.log(50 + '50');

//NaN
// let a = NaN;
console.log(undefined + 10);

ex)
console.log(20 + 41 + '20' + '' + 70 + 45)
  //'61207045'
console.log(10 + '' + 27) 
  //'1027'

📍"-" 뺄셈연산자(Subtraction assignment)

숫자모양의 문자열(숫자) - 숫자모양의 문자열(숫자) ==> number
숫자로바꿀수없는 문자열이 어느 한쪽에라도 포함되어 있다면 NaN

console.log("=====뺄셈연산자====");
console.log("안녕"-'안녕'); //NaN
//string -number ==> number
//number -string ==> number
console.log("10"-2); //number 타임 8 결과
console.log(undefined-1);

📍"*"곱하기연산자 (Multiplication assignment)

숫자모양의 문자열(숫자) * 숫자모양의 문자열(숫자) ==> number
숫자로바꿀수없는 문자열이 어느 한쪽에라도 포함되어 있다면 NaN

📍 "/" 나누기연산자 (Division assignment)

숫자모양의 문자열(숫자) / 숫자모양의 문자열(숫자) ==> number
숫자로바꿀수없는 문자열이 어느 한쪽에라도 포함되어 있다면 NaN
0 혹은 '0' 으로 나누면 음의무한대 -Infinity 혹은 Infinity가 결과로 나온다

console.log(10/0); // Infinity (number type)
console.log(-10/0); // -Infinity (number type)

📍 "%"나머지연산자(Remainder assignment)

나머지 연산자 나누었을떄 나머지를 계산한다.
숫자모양의 문자열(숫자) % 숫자모양의 문자열(숫자) ==> number
숫자로바꿀수없는 문자열이 어느 한쪽에라도 포함되어 있다면 NaN

📌 자료형(타입type)

    number: 10, -5, 3.1, Infinity, NaN, ....
    string: '', 'dfs', '10', .....
    undefined: undefined
    boolean: true, false

📍 비교 연산자(Comparison operators)

피연산자 두개

✏️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랑 같니(type도 같니)? 결과는 맞으면 true 틀리면 false
✏️a !== b
a랑 b랑 다르니(type도 다르니)? 결과는 맞으면 true 틀리면 false

  • ✏️숫자 > 숫자
    :비교 O
  • ✏️숫자 > 문자
    :비교 하지말자
  • ✏️'0' == '0'
    문자열과 문자열이 같은지 비교 많이 한다

📍 논리연산자(Logical operators)

✏️ a && b
and 연산(논리곱, 교집합)
a 그리고 b 둘다 true 라면 결과가 true 아니면 false
✏️ a || b
or 연산(논리합, 합집합)
a 혹은 b 둘중 하나라도 true 가 있다면 결과는 true 아니면 false
✏️ !a
피연산자하나 not연산(논리부정, 여집합)
a가 아니다.
a가 true면 결과는 false, a가 false면 결과는 true

📍 논리연산자 예시✏️

  1. 소주 물건 구매 1600원
            돈이 1600원 이상 : 조건1
            성인 : 조건2
            무슨 연산자 사용? and연산 결과(교집합)가 true이면 구매 완료하게 해줘
  2. 기차탑승
            돈이 50000원 이상 : 조건1
            국가유공자 : 조건2(무료로 탑승가능)
            조건1 혹은 조건2 둘중 하나만 만족해도 탈 수 있다
            무슨 연산자 사용? or연산자(합집합) 

📌 우선순위(Operator precedence)에 따라서 차근차근 수행

최우선 연산자 ()
단항연산자 !
산술연산자 * / % + -
쉬프트연산자
관계연산자 > < >= <= == != === !===
논리연산자 && ||
삼항연산자
대입연산자 =

여러가지사용(논리연산자,비교연산자,대입연산자..등등)예시

    num = !(10 % 2 == 0 && 10 - 3 >= 3 - 5) || true
    num = !(0 == 0 && 7 >= -2) || true
    num = !(true && true) || true
    num = !(true) || true
    num = false || true
    num = true

📍삼항(조건)연산자(Conditional (ternary) operator)

✏️ a ? b : c
📍 피연산자갯수 : 세개

console.log(true ? 10 : '안녕') // 10
console.log(false ? true : false) // false
console.log(true ? 10 : 100); //10
console.log(false ? 10 : 100); //100
//
연산의 🌟동작 :
  a를 확인했더니 a가 true라면 
연산의 🌟결과 : b
//
연산의 🌟동작 :
  a를 확인했더니 a가 false라면
연산의 🌟결과 : c
profile
나를위한 노트필기 📒🔎📝

0개의 댓글

관련 채용 정보