코드스테이츠_1주차_화

윤뿔소·2022년 8월 23일
0

CodeStates

목록 보기
3/47
post-thumbnail

오늘은 조건문과 반복문 2개를 진행할 것이다!

조건문

  • truthyfalsy가 조건문에서 작동하는 방식을 이해
  • 비교 연산자를 통한 엄격한 비교(===, !==)에 대해 이해
  • ifelse if, else를 이해하고 무리 없이 활용
  • 논리 연산자를 (&&, ||,!, ...) 통해 복잡한 조건을 간결하게 작성
  • 복잡한 조건문을 활용하여, 실생활에서 쉽게 마주하는 문제를 해결하기 위한 알고리즘을 구현
  • ?를 사용한 조건문도 사용 가능!

조건문의 전제

  • 조건문의 기준을 만들기 위해 불린 데이터의 이해 필요
  • 비교 연산자(패캠 5주차)를 통한 기준을 통해 불린 데이터 도출
    + 무조건 일치연산자 쓰기 ex) null == undefined => true

조건문의 작성법

if(조건1) {
} else if (조건2) {
} ... else { }

  • 조건에는 비교연산자(일치, 부등호)를 써 불린데이터를 도출할 수 있는 식을 작성
  • 두가지 조건이 한번에 적용되는 경우는 논리연산자를 작성
    ex) 학생이면서, 여성일 때 통과(AND) => isStudent && isFemale, 학생이거나 여성일 때(OR) 통과 => isStudent || isFemale
  • NOT 연산자를 앞에 써줘 true, false 반전 => !isStudent && isFemale

Falsy

6개 있음 아래 Boolean()으로 파악해보기

console.log(Boolean(1)) // true
console.log(Boolean(0)) // false
console.log(Boolean(-1)) // true
console.log(Boolean(NaN)) // false
console.log(Boolean(undefined)) // false

문자열

  • length 속성을 활용해 문자열의 길이를 확인
  • 두 개 이상의 문자열을 하나의 문자열로
  • slice() 메서드를 활용해 문자열을 원하는 만큼 ‘복사’
  • 영문으로 된 문자열을 대문자 또는 소문자로 바꿀 수 있음
  • 문자열 중 원하는 문자의 index를 찾고 접근할 수 있음 - str.indexOf('a') 또는 str.lastIndexOf('a'),str[1]
  • includes() 메서드를 활용해 문자열 중 원하는 문자가 포함되어 있는지 알 수 있음 - str.includes('a')
  • split() , join() 메서드를 활용해 문자열을 배열로 바꾸거나, 배열을 문자열로 바꿀 수 있음
  • ⭐️템플릿 리터럴(Template literals) 문법을 사용할 수 있음

문자열 다루기

+ 연산자

  • string 타입에 + 를 넣어 string 타입으로 변경 가능
  • str1.concat(str2, str3 ...)도 가능!
console.log('Code' + 'States') // 'CodeStates'
console.log('1' + 7) // '17'

Length 속성

let str = 'CodeStates'
console.log(str.length)

⭐️메소드들: 실무 사용 多

⭐️ String 메소드들은 원본이 수정되지않는(IMMUTABLE) 메소드임! 즉, 바뀐 걸 하려면 변수를 재할당해줘야함!

str.indexOf(searchValue)

  • str에 문자열을 삽입, 인수로 찾고자하는 문자열을 입력, 처음으로 일치하는 Index 반환
  • str.lastIndexOf(searchValue): 뒤에서부터
  • str.includes(searchValue): 포함돼있는지의 불린 데이터 반환
'Blue Whale'.indexOf('Blue'); // 0
'Blue Whale'.indexOf('blue'); // -1, 존재 X
'Blue Whale'.indexOf('Whale'); // 5

str.split(seperator)

  • 문자열 삽입, 인수로 구분하고자 하는 문자열 입력, 분리된 문자열이 포함된 배열 반환
let str = 'Hello World'
console.log(str.split(' '))
  • csv 형식을 처리하는데 유용!
    이런식으로 스플릿된 걸(csv.split('/n')) 다시 변수 선언 후 할당해 배열데이터에 인덱스 번호 붙이고 스플릿을 붙여(lines[0].split(',')) 정보를 추출할 수 있음!

str.substring(start, end)

  • 시작과 끝 Index를 입력해 해당하는 사이 문자열을 반환
  • str.slice(start, end)랑 비슷, 차이점 있음! 근데! slice를 많이 씀! 알아놓자!!@
let alpha = '가나다라마바사'
console.log(alpha.substring(-1, 3)) // 가나다라, -1은 0으로 취급
console.log(alpha.substring(1, 3)) // 나다라 
console.log(alpha.substring(0, 20)) // 가나다라마바사

str.toLowerCase() / str.toUpperCase()

입력한 문자열 전체를 소문자화 / 대문자화

str.trim()

문자열 양끝의 공백을 제거

const greeting = '   Hello world!   ';
console.log(greeting.trim()); // "Hello world!";

str.replace(교체대상, 교체문구)

문자열 삽입, 교체할 문구 선정, 선정된 첫번째문구를 교체 후 교체된 문구로 반환

const p = '닭 쫓던 원숭이 지붕 쳐다본다. 원숭이는?';
console.log(p.replace('원숭이', '개')); // 닭 쫓던 개 지붕 쳐다본다. 원숭이는?

.match(), Math.~

정규표현식 알아보기(${ }, js template string)

문자열쓸 때 변수도 넣어줄 수 있고 식도 넣어줄 수 있음

// 
function computeDifference(num1, num2) {
  return `${num1}, ${num2}의 차이는 ${Math.abs(num1 - num2)}입니다.`
}
// Math.floor 활용, 정규표현식 사용
function makeLastSeenMsg(name, period) {
  if (period < 60) {
    return `${name}: ${period}분 전에 접속함`
  } else if (period < 24*60 && period >= 60) {
    return `${name}: ${Math.floor(period/60)}시간 전에 접속함`
  } else {
    return `${name}: ${Math.floor(period/(60*24))}일 전에 접속함`
  }
}
profile
코뿔소처럼 저돌적으로

0개의 댓글