조건문 (conditional statement)

Now, Sophia·2021년 8월 1일
1

TIL_JAVASCRIPT

목록 보기
6/15
post-thumbnail

조건문 (conditional statement)

참이나 거짓으로 평가되는 표현식

예제
* ifif (1 == 1) {
	console.log('1은 1입니다')} // 1은 1입니다
  
// if ( ) 안에 조건이 들어가며 그 조건이 맞으면 코드가 실행된다.

* if elseif (1 == 2) {
  	console.log('1은 1입니다')}
	else {
	console.log('1은 2가 아닙니다')} // 1은 2가 아닙니다
/* 첫번째 코드는 조건(1 == 2) 가 아니기 때문에 실행이 되지 않는다.
 'else'는 첫번째 코드가 실행되지 않은 경우에 실행된다. */

블린 (Boolean)

참과 거짓을 판별할 때 사용하는 데이터 타입

	console.log(1+1 === 2); // true
	console.log('emily' === 'EMILY'); // false
	console.log('MISS YOU' === 'MISS YOU'); // true

    💥 자바스크립트는 문자열의 대문자 소문자 구별할 수 있는 언어이다 

falsy

거짓같은 값은 false로 평가되는 값이다.
falsy : 0, -0, "", null, undefined, NaN

truthy

거짓같은 값을 제외한 모두 true로 평가되는 값.

비교 연산자

참인지 거짓인지 판별할 때 비교연산자 사용

연산자설명true를 반환하는 예제
동등 ( == )피연산자가 서로 같으면 true1 == 1
부등 ( != )피연산자가 서로 다르면 true1 != 2
일치 ( === )피연산자의 값과 타입이 모두 같으면 true1 === 1
불일치 ( !== )피연산자의 값 또는 타입이 서로 다를 경우 true1 !== '1'
초과, 큼 ( > )왼쪽 피연산자가 오른쪽 피연산자보다 크면 true2 > 1
이상, 크거나 같음 ( >= )왼쪽 피연산자가 오른쪽 피연산자와 같거나 크면 true1 >= 1, 2 >= 1
미만, 작음 ( < )왼쪽 피연산자가 오른쪽 피연산자보다 작으면 true1 < 2
이하, 작거나 같음 ( <= )왼쪽 피연산자가 오른쪽 피연산자와 같거나 작으면 true1 <= 1, 1 <= 2

💥 피연산자가 서로 문자열이면 문자열 첫 번째 문자부터 알파벳 순서대로 비교

예제
	function number (num) {
      if ( num%2 == 0 ) {
      return "Even"
    } else {
      return "Odd"
    }
    }
console.log(number(1)); // odd ; 1%2 == 0이 아니기 때문에

👋🏻여기서 잠깐,!

  숫자가 홀수(odd)인지 짝수(even)인지 알아내는 식 ' number%2 == 0 '
  number에 2를 넣는 경우, 0이 되기때문에 number에 넣은 숫자가 짝수라는 것을 알 수 있다.
  또한, number에 1을 넣은 경우,
  0이 되지 않기 때문에 number에 넣은 숫자가 홀수라는 것을 알 수 있다.

💁🏻‍♀️ 그렇다면 0 을 넣었을 경우, 0은 짝수일까 홀수일까?
==> 02로 나눴을 때 0이 나오기 때문에 0 또한 짝수이다.

산술 연산자

두 개의 숫자 값을 피연산자로 받아서 하나의 숫자 값을 반환
표준 산술 연산자는 더하기(+), 빼기(-), 곱하기(*), 나누기(/)

연산자설명예제
나머지 ( % )이항 연산자이며, 두 피연산자를 나눴을 때의 나머지 반환16%5 == 1
증가 ( ++ )단항 연산자이며, 피연산자에 1을 더한 값.
전위 연산자(++x)로 사용하면 x에 1을 더한 값을 반환.
후위 연산자(x++)로 사용하면 피연산자에 1을 더하기 전의 값을 반환
하기 참조
감소 ( -- )단항 연산자이며, 피연산자에서 1을 뺀 값.
반환 값은 증가 연산자처럼 동작
하기 참조
단항 부정 ( - )단항 연산자이며, 피연산자의 부호를 반대로 바꾼 값을 반환하기 참조
단항 플러스 ( + )단항 연산자이며, 피연산자가 숫자 타입이 아니면 숫자로 변환을 시도하기 참조
거듭제곱 ( ** )base^exponent. 거듭제곱한 결과2 ** 4 = 16

증감 연산자 ( ++ , -- )

전위 연산자 (++1)
	let a = 1;
	console.log(++a); // 2
	console.log(a); // 2
/* console.log(++a) 에서 이미 a 에서 1 더해진 상태로 2가 출력되고,
   그 뒤로 a 를 출력했을 때도 2가 출력 */
💥💥 선 증가, 후 연산

후위 연산자 (1++)
	let a = 1;
	console.log(a++); // 1
	console.log(a); // 2
/* console.log(a++) 에서는 더하기 직전의 값을 보여주고,
   그 뒤로 a를 출력했을 때 1이 더해진 2가 출력 */
💥💥 선 연산, 후 증가

후위 연산자는 소괄호의 영향을 받지 않고, 다음 문장으로 넘어가야 값의 증감이 진행된다.

단항 플러스와 단항 마이너스

단항 연산자는 단 하나의 값에만 적용되는 연산자

플러스 (+)
	let number = 10;
	number = +number; // 10
 /* 숫자형 값에는 아무런 숫자의 변화가 없다. 숫자에 대해 연산을 수행하지 않는다.
 그러나 숫자가 아닌 값에 적용하면 숫자로 변환시도 */
     ex) +true // 1
         +false // 0
         +null /// 0

마이너스 (-)
	let number = 10;
	number = -number; // -10
/* 보통 숫자형 값의 부호를 바꾸는 용도. 음수 값을 양수 값으로, 양수값을 음수 값으로.
 그러나 숫자가 아닌 값에 적용하면 숫자로 변환시도*/

🔺 단항 플러스와 단항 마이너스는 주로 간단한 계산에 사용하지만 변환용도로도 사용

논리 연산자

연산자사용법설명
논리 AND ( && )a && b둘 다 참일 경우, true. 그 외는 false 반환
논리 OR ( || )a || b둘 중 하나가 참일 때, true. 그 외는 false
논리 NOT ( ! )!atrue로 변환할 수 있으면 false로 반환하고, 그 외에는 true 반환
* AND 예제
	if ( 1 === 1 && 2 === 2) {
      console.log('true')
     }
// true ; 1 === 1 과 2 === 2 두개 모두 참이므로

* OR 예제
	if ( 1 === 1 || 2 === 3) {
      console.log('true')
    } else {
       console.log('false')
      }
// 'true' ; 2 === 3이 아니라더라도 1 === 1이 참이므로 둘 중 1개만 참이면 true 로 반환

* NOT 예제
	if ( 1 !== 2 ) {
      console.log('true')
    } else {
       console.log('false')
      }
// true ; 1 은 2가 아니다. 가 맞으므로
🔺 참인 값을 거짓으로, 거짓 값을 참으로 바꾸는 연산자로 boolean 타입의 변수에만 사용

🔺🔺연산자 참고링크

💡 if 문과 && 연산자

	let obj = {
  	drink : 'milk'}

	if (obj) {
	console.log(obj.drink)}; // milk

	obj && console.log(obj.drink); // milk

if의 조건이 'true' 면 코드블럭이 실행되듯이, &&연산자의 왼쪽 값이 true면 오른 쪽 값이 실행된다.



🙋🏻‍♀️ Today,

조건문. 함수... 모두 까다롭다..너무너무 까다롭다🤦🏻🤦🏻🤦🏻‍♀️
알겠다가도 모르겠다.
심지어 괄호를 어디에 해야하는지까지 헷갈려버린다..
너무 그들에게 폭 빠져버린걸까💔 눈물의 짝사랑이다.

또 후위 연산자는 어떠한 존재일까
너는 뭐지😭😭 나에게 넌 무슨 존재인거니🤷🏻‍♀️
왜 기본값을 먼저 출력하고 다시 호출해야 더한 값이 출력이 되는걸까?
무슨 이유로 이렇게 만들었을까.

내가 존재하는 이유가 있듯이 이 또한 존재하는 이유가 있겠지..🤦🏻‍♀️
좀 더 코딩을 할 줄 알고 배운다면... 명쾌한 존재의 이유를 알 수 있을..있겠지.

👋🏻📚오늘의 깨달음📜
else if문의 마지막에 else에 ( ) 조건을 넣었는데 결과 값이 정상으로 작동했다.
그래서 처음에 else에도 조건을 넣어도 되는구나 하고 지나갔는데..

아무리 생각해도 찝찝해서 팀원들, 도움의 손길에게 여쭈어봤더니,
마지막 else에는 별도의 조건을 넣지 않아도 앞에 있던 조건들이 아닌 경우의 결과 값이 도출되기 때문에 넣을 필요가 없다!🙆🏻‍♀️🙆

불쌍한 이를 위한 천사들의 손길 덕분에 오늘도 배웠습니다.😇

profile
Whatever you want

0개의 댓글