[JS] 문자열/Boolean/상수/연산자/조건문/switch

XIXI·2022년 6월 8일
0

대구AI스쿨

목록 보기
30/57
post-thumbnail

🌱 문자열

✏️ escape

문자열에 \n 을 삽입하면 줄바꿈 가능.

✏️ Template literals

문자열에 따옴표' " 대신 백틱을 사용하면,
escape 문자를 사용하지 않아도, 입력한 그대로 문자열이 표현

✏️ index

문자열에서 index 개념 사용 가능

✏️ length

index는 0부터 시작. 때문에 length로 글자길이를 가져올 경우 n-1 적용과정 필요

✏️ %

나머지 연산 %
활용 예: 나머지=0일 경우, 짝수 / 나머지=1일 경우, 홀수 / n의 배수값 확인

🌱 Boolean

✏️ 특징

결과를 true, false 값으로 나타냄

✏️ 비교연산자

  • == ➪ 같다
  • === ➪ 자료형까지 같다
  • n < 2 ➪ n이 2보다 작다
  • n > 2 ➪ n이 2보다 크다
  • !true ➪ not true-> false
  • !false ➪ not false -> true

✏️ or / and

  • or ➪ ||
  • and ➪ &&

🌱 상수형

✏️ 특징

상수 선언은 바꿀 수 없음

  • 값을 변경하고 싶을 때 상수를 쓰는게 아니라 변수를 써야 함

✏️ cosnt

const를 선언할 때 값을 주어야 에러가 생기지 않음

Identifier has already declared : 선언한 내용을 중복 선언하여 발생
Missing initializer in const declaration : 상수를 선언할 때 초기화(할당) 시키지 않음.
Uncaught TypeError : Assigment to constant variable : 선언된 상수를 변경하려고 할 때 생기는 에러

cosnt는 변수 재선언, 재할당 모두 불가능

✏️ let

let으로 선언된 변수를 다른 값으로 다시 선업하면 에러가 발생
즉, 변수 재선언이 불가함.
하지만 값을 재할당하는 것은 가능.

✏️ var

같은 변수를 다른 값으로 선언해도 에러가 발생되지 않고 다른 값이 출력됨

🌱 변수 연산자

✏️ 복합 연산자

+ - * / % 모두 가능

✏️ 증감 연산자

<script>
    let num = 0
    num ++ 
    alert(num)
</script>

후위

<script>
    let num = 0
    alert(num++)
    alert(num++)
    alert(num++)
</script>

0, 1, 2 순으로 alert 창이 뜸

전위

<script>
    let num = 0
    alert(++num)
    alert(++num)z 
    alert(++num)
</script>

1, 2, 3 순으로 alert 창이 뜸

✏️ 증감 연산자 실행순서

alert(num++) ➪ alert(num) ➪ num = num + 1
alert(++num) ➪ num = num + 1 ➪ alert(num)

🌱 조건문

✏️ if 문

기본 문법

<script>
    if(조건식) {
      실행문1
      실행문2
    }
    실행문3
	
    // 실행순서
    거짓: 실행문 3: 실행문 1 2 3
</script>

기본 구조. 조건식이 참인 경우 실행문 실행

실행순서

<script>
    //조건문 if
    if(200 < 100) {
      alert("200 < 100은 참")
    }
    alert("200 < 100은 거짓")
</script>

조건이 false 이므로 alert("200 < 100은 거짓") 실행

else

<script>
    //조건문 if
    if(200 > 100) {
      alert("조건이 참 실행문")
    }
    else {
      alert("그렇지 않은 경우 실행문")
    }
</script>

참인 경우 alert("조건이 참 실행문")이 실행
아닌 경우 alert("그렇지 않은 경우")이 실행

✏️ 표기방법

연산자 사용

<script>
const date = new Date ()
const hours = date.getHours()

if(hours < 12) {
	alert("현재시간은\n" + hours + "시 오전입니다")
}
if(hours >= 12) {
	alert("현재시간은" + hours + "시 오후입니다")
}
</script>

변수 hours 로 현재 시간을 표현할 수 있다.
연사자로 문장 표현 가능
줄바꿈은 \n 으로 표현 가능

$,백틱 사용

<script>
    const date = new Date ()
    const hours = date.getHours()
    if(hours < 12) {
      alert(`현재시간은\n${hours} 시 오전입니다`)
    }
    if(hours >= 12) {
      alert(`현재시간은 ${hours} 시 오후입니다`)
    }
</script>

+ 대신 ${변수} 사용표현 가능
이 경우 문자열 "" 대신 백틱(`) 사용 필요

✏️ 중첩 if 문

<script>
    if(조건문1) {
      if(조건문2){
        실행문1
      }else {
      실행문2
      }
    }else {
      if(조건문3) {
        실행문3
      }else {
        실행문4
      }
    }
</script>

if 문 안에 또 다른 if문을 포함하고 있는 것.
밖을 감싸고 있는 if 조건이 참일 경우 안에 위치한 if 조건 판별 단계로 넘어간다.
예를 들어 id가 일치하는 조건을 만족해야 비밀번호에 대한 조건을 판별하는 것.

✏️ else if 문

if (조건문) {
	if(조건문) {
    	실행문
    }else if(조건문) {
    	실행문
    }else {
    	실행문
    }
}

if문 > else if문 > esle문 순으로 사용
else if문 또한 조건 판별 과정을 거침.

🌱 switch

특징

if문에 비해 명시적으로 보인다.
값에 따라 실행문을 분리하고 다음 단계로 넘어가지 않도록 break; 를 사용해 멈춘다.
case외 값 입력될 경우 default 케이스의 실행문을 실행한다.

단점

범위 설정이 어렵다

사용환경

값이 명시적으로 떨어지는 경우

✏️ 구조

switch (a) {
      case: 1
      실행문
      break;
      case: 2
      break;
      실행문
      case: 3
      break;
      default;
      실행문4
      break;
    }

a에서 입력된 값과 case가 일치할 경우,
해당 case의 실행문 실행 후 break;
case에 해당하는 값이 아닌 경우,
defalt 실행문 실행 후 break;

✏️ 예제

<script>
    const ivalue = Number(prompt("숫자를 입력하세요", "0~3"))
    switch(ivalue) {
      case 0:
        alert("0 입니다.")
        break;
      case 1:
        alert("1 입니다.")
        break;
      case 2:
        alert("2 입니다.")
        break;
      case 3:
        alert("3 입니다.")
        break;
      default:
        alert("숫자입니다.")
        break;
    }
</script>


switch문으로 prompt에 입력된 값 case에 따라 실행문이 실행되는 것을 확인 할 수 있음.

🍃 어려웠던 점 or 해결못한 것

변수에 대해 더 자세한 개념을 알아보고 싶다고 생각했다!

🍀 해결방법 작성

✏️ 어떻게 해결을 했는가?
추가로 개념에 대해 찾아보았다
✏️ 이렇게 이해를 했다
✏️ 어디까지 이해했지?
✏️ 다음에 시도해볼 방법

🌷 학습 소감

이전 방식과 새로운 방식을 알게되었다

profile
Life is experience:)

0개의 댓글