[TIL] Unit 3. 기초 제어문 (조건문, 문자열, 반복문)

string_main·2022년 4월 28일
0

JavaScript

목록 보기
2/22
post-thumbnail

🌱 조건문(Conditional)


  • 정의 : 조건문은 어떠한 조건을 판별하는 기준을 만드는 것. 반드시 비교 연산자(comparison operator)가 필요함
if (조건1){
  // 조건1이 통과할 경우
} else if (조건2) {
  //조건2가 통과할 경우
} else {
  //모든 조건이 통과하지 않는 경우
}

🌱 동치 비교 및 동일성(equality)


  • 동등 연산자(==, equality operator) : 두 개의 피연산자가 동일한지 확인, 일치 연산자와 달리 다른 타입끼리 비교 (타입 강제 변환 허용)
  • 일치 연산자(===, strict equality operator) : 동등 연산자와 달리 항상 다른 유형의 피연산자들을 다른 것으로 간주 (타입 강제 변환 비허용)

일치 연산자(===)를 사용하는 것이 권장사항!

🌱 논리 연산자(Logical Operator)


  • 논리 AND 연산자(&&) : 모두 참일 때 true를, 이외에는 false를 반환 (+ falsy한 값을 만나면 그 값을 즉시 반환, 둘다 truthy할 경우 뒤에 있는 값을 반환)
  • 논리 OR 연산자(||) : 둘 중 하나가 참일 때 true, 이외에는 false를 반환 (+ truthy한 값을 만나면 그 값을 즉시 반환, 둘다 falsy할 경우 뒤에 있는 값을 반환)
  • 논리 NOT 연산자(!) : true를 false로 반환하거나 false를 true로 반환

    논리 연산자는 보통 Boolean값을 반환하지만, 둘 중 하나가 Boolean값이 아니라면 해당 값 자체를 출력할 수도 있다.

🌱 거짓같은 값(falsy)


  • false : false 키워드
  • 0 : Number 타입 0
  • -0 : Number 타입 음수 0
  • 0n : BigInt 타입 0
  • "", '', `` : 빈 String
  • null : 아무런 값도 없음
  • undefined : 할당된 값이 없음
  • NaN(Not a Number) : 숫자가 아님

🌱 문자열(String)


🌿 문자열 접근하기(Accessing)

  • 문자열은 index로 접근은 가능하지만 쓸 수는 없음, 새로 할당하지 않는 한 값이 바뀌지 않음 (read-only)
var str = 'CodeStates';
console.log(str[4]); // 'S'

str[0] = 'G';
console.log(str); // 'CodeStates' not 'GodeStates'

🌿 문자열 이어붙이기(Concatenating)

  • + 연산자
  • concat()
var str1 = '2';
var str2 = '4';
var str3 = 'hi';

console.log(str1 + 6); // '26' (string으로 강제 변환됨)
str1.concat(str2, str3); // '24hi'

🌿 문자열 속성(Properties)

  • length: 문자열 전체 길이를 반환
var str = 'Hello world';

console.log(str.length); // 11

🌿 문자열 메소드(Methods)

  • indexOf(searchValue) : 처음으로 일치하는 index를 반환, 일치하는 문자열이 없으면 -1 반환
  • lastIndexOf(searchValue) : 문자열 뒤에서 부터 찾음
  • includes(searchValue) : 문자열의 포함 여부(Boolean)를 반환 (IE 같은 구형 브라우저에서는 작동하지 않음)
  • split(seperator) : 문자열 분리 (csv 형식 처리 시 유용)
  • substring(start, end) : 시작 인덱스와 끝 인덱스 사이의 값을 반환
  • slice(start, end) : substring과 유사하지만 동작에 몇가지 차이가 있음
  • toLowerCase() : 문자열을 소문자로 변환
  • toUpperCase() : 문자열을 대문자로 변환
  • trim() : 문자열 양 끝의 공백을 제거
  • match(regexp) : 문자열이 정규식과 매치되는 부분을 검색 (정규 표현식(regexp): 문자열에서 특정 문자 조합을 찾기 위한 패턴)
  • replace(regexp|substr, newSubstr|function) : 패턴에 일치하는 일부가 교체된 새로운 문자열 반환
  • join(separator) : 배열의 모든 요소를 연결해 하나의 문자열로 만듦 (separator를 생략하면 요소들을 쉼표(,)로 구분)

string method는 모두 immutable하다. (즉, 원본 자체는 변하지 않음) array method는 immutable, mutable 여부를 잘 파악해야 한다.

🌿 템플릿 리터럴(Template literals)

  • 정의 : 내장된 표현식을 허용하는 문자열 리터럴. 백틱(``)과 ${}를 사용해 표현한다.
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b} and
not ${2 * a + b}.`);
// "Fifteen is 15 and
// not 20."

🌱 반복문(Iteration)


  • 정의 : 같거나 비슷한 코드를 여러 번 실행시켜야 할 경우에 쓰는 구문

  • for문 : 반복할 내용(반복문 body)을 작성하고, 반복할 조건(초기화, 조건식, 증감문)을 작성하는 구문

let sum = 1;

for(let n = 2; n <= 4; n = n + 1) {
  sum = sum + n;
}
console.log(sum); //10
  • while문 : 초기화 증감문은 따로, 조건식만 괄호에 넣는 구문
let sum = 1;
let n = 2;

while(n <= 4) {
  sum = sum + n;
  n = n + 1;
}
console.log(sum); //10

🌱 알게된 것 & Tips


  • JavaScript에서 조건문, 문자열, 반복문의 기초 개념을 잡았다.
  • 비교 연산 시 엄격한 검사인 일치 연산자(===)를 사용해야 한다.
  • 논리 연산자는 Boolean값 뿐만 아니라 값 자체를 출력할 수도 있다.
  • falsy한 값과 truthy한 값을 구분할 수 있다.
  • 문자열은 read-only이고, string method는 모두 immutable하다.

🌿 반복문 작성 Tip

  1. 반복할 내용을 먼저 코드로 작성한다.
  2. 반복할 조건을 코드로 작성한다.
  • for 구문
    : 반복할 조건을 초기화, 조건식, 증감문 순으로 작성한다.

  • while 구문
    : 초기화는 밖에 증감문은 안쪽에 조건식은 괄호 안에 (초기화나 증감문이 필요없을 때는 while 쓰는 것이 편함)

🌱 느낀 점


  • 아직 아침에 일찍 일어나는 건 적응 못했다. ^.^ 정처기 실기까지 신경쓰려니 너무 피곤하다.
  • 지금까지 가장 좋다고 느끼는 컨텐츠는 페어 프로그래밍과 코플릿이다. 기초적인 알고리즘 문제지만, 그냥 무지성으로 추측해서 작성하는 것과 의사코드를 기반으로 논리적으로 작성하고 그 코드를 말로 설명하는 것은 정말 다른 차원임을 느꼈다.

🌱참고 자료

profile
FE developer

0개의 댓글