TIL.Day2 (조건문, 문자열)

jeyoon·2021년 1월 19일
0
post-custom-banner

조건문

  • 조건문은 어떠한 조건을 판별하는 기준을 만드는 것
  • 조건문에는 반드시 비교 연산자(comparison operator)가 필요
3 > 5; // false
9 < 10; // true 
'hello' === 'world'; // false

다른 유형의 데이터를 비교하는 것은 예상치 못한 결과를 얻을 수 있다.
숫자와 문자열을 비교할 때, 자바 스크립트는 문자열을 숫자로 변환한다. 빈 문자열은 숫자가 아닌 문자열 0으로 변환한다.

2 < 12 // true
2 < '12' // true
'2' < '12' // false
'2' > '12' // true
2 > '' // true 
  • 비교의 결과는 늘 Boolean, 즉 true or false
  • 조건문은 다음과 같이 쓸 수 있다
if (조건1) {
  // 조건1이 통과할 경우
} else if (조건2) {
  // 조건1이 통과하지 않고
  // 조건2가 통과할 경우
} else {
  // 모든 조건이 통과하지 않는 경우
}
  • 조건에는 boolean으로 결과가 나오는 표현식이 들어간다
  • 두가지 조건이 한번에 적용되는 경우?
    • 논리 연산자를 사용
      ex) 학생이면서 여성일 때 통과
      isStudent && isFEmale : AND 연산자
      isStudent || isFEmale: OR 연산자
      !isStudent && isFEmale : NOT연산자 ➡️ truthy, falsy 여부를 반전시킴
      !false //true
      !(3>2) //false
      !undefined //true undefined는 원래 false로 취급되는 값(falsy)
      !'Hello' //false 모든 문자열은 원래 true로 취급되는 값(truthy) 값
  • 기억해야 할 6가지 falsy 값
    • 다음은 if 문에서 false로 변환되므로, if 구문이 실행되지 않음
      if(false) 
      if(null)
      if(undefined)
      if(0)
      if(NaN)
      if('')
  • 논리 연산자의 결과에 Boolean이 아닌 값이 들어갈 수 있다
    • OR 연산자는 truthy한 값을 만나면, 그 값을 출력
      undefined || 10  //10
      5 || 10 // 5
    • 둘다 falsy할 경우, 뒤에 있는 값을 출력
      undefined || false // false
    • AND 연산자는 falsy한 값을 만나면, 그 값을 출력
      undefined && 10 // undefined
      5 && false // false
    • 둘다 truthy할 경우, 뒤에 있는 값을 출력
      5 && 10 // 10

문자열

  • str[index] - index로 접근은 가능하지만 수정, 추가는 할 수 없음
  • +연산자: string 타입과 다른 타입 사이에 쓰면 string 형식으로 변함(toString)
var str1 = 'Code';
var str2 = "States";
var str3 = '1';
console.log(str1 + str2); // 'CodeStates'
console.log(str3 + 7);    // '17'

str1.concat(str2, str3, ...);의 형태로도 사용 가능

문자열 메소드

str.length

  • 문자열의 전체 길이를 반환
var str = 'CodeStates';
console.log(str.length); //10

str.indexOf

  • arguments: 찾고자 하는 문자열
  • return value: 처음으로 일치하는 index, 찾고자 하는 문자열이 없으면 -1
  • lastIndexOf는 문자열 뒤에서부터 찾음
'Blue Whale'.indexOf('Blue');        // 0
'Blue Whale'.indexOf('blue');        // -1
'Blue Whale'.indexOf('Whale');       // 5
'Blue Whale Whale'.indexOf('Whale'); // 5

'canal'.lastIndexOf('a');            // 3

str.split(separator)

  • arguments : 분리 기준이 될 문자열
  • return value : 분리된 문자열이 포함된 배열
  • csv 형식 처리 시 유용
let str = 'Hello from the other side';
console.log(str.split(' '));
// ['Hello', 'from', 'the', 'other', 'side']

console.log('a+very+nice+thing'.split('+'));
// ["a", "very", "nice", "thing"]

str.substring(start, end)

  • arguments: 시작 index, 끝 index
  • return value: 시작과 끝 index 사이의 문자열
var str = 'abcdefghij';
console.log(str.substring(0, 3));  // 'abc'
console.log(str.substring(3, 0));  // 'abc'
console.log(str.substring(1, 4));  // 'bcd'
console.log(str.substring(-1, 4)); // 'abcd', 음수는 0으로 취급
console.log(str.substring(0, 20)); // 'abcdefghij', index 범위를 넘을 경우 마지막 index로 취급

str.trim()

  • 문자열 양 끝의 공백을 제거
const email = 'hello@jonas.io';
const loginEmail = '   Hello@Jonas.Io \n';

const lowerEmail = loginEmail.toLowercase();
const trimmedEmail = lowerEmail.trim();
console.log(trimmedEmail) // 'hello@jonas.io'

str.replace

어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환

const announcement = 'All passengers come to boarding door 23, Boarding door 23!';

console.log(announcement.replace('door', 'gate'));
//All passengers come to boarding gate 23, Boarding door 23!

// 간단한 정규표현식 사용 예시
console.log(announcement.replace(/door/g, 'gate'));
// All passengers come to boarding gate 23, Boarding gate 23!

str.padStart

  • 현재 문자열의 시작을 다른 문자열로 채워, 주어진 길이를 만족하는 새로운 문자열을 반환. 채워넣기는 대상 문자열의 시작(좌측)부터 적용

str.padEnd

  • 현재 문자열에 다른 문자열을 채워, 주어진 길이를 만족하는 새로운 문자열을 반환. 채워넣기는 대상 문자열의 끝(우측)부터 적용
const message = 'Go to gate 23';
console.log(message.padStart(25, '+').padEnd(30, '+'));
console.log('Jonas'.padStart(25, '+').padEnd(30, '+'));

// ++++++++++++Go to gate 23+++++
// ++++++++++++++++++++Jonas+++++

str.repeat

const message2 = 'Bad weather... All Departures Delayed...';
console.log(message2.repeat(5));

// Bad weather... All Departures Delayed...Bad weather... All Departures Delayed...Bad weather... All Departures Delayed...Bad weather... All Departures Delayed...Bad weather... All Departures Delayed...

str.toLowerCase()

str.toUppercase()

str.startsWith

str.endsWith

⭐️ 모든 string method는 immutable. 즉, 원본이 변하지 않음❗️
(array method는 immutable 및 mutable 여부를 잘 기억해야함)

post-custom-banner

0개의 댓글