TIL.Day2 (조건문, 문자열)
조건문
- 조건문은 어떠한 조건을 판별하는 기준을 만드는 것
- 조건문에는 반드시 비교 연산자(comparison operator)가 필요
3 > 5; // false
9 < 10; // true
'hello' === 'world'; // false
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('')
- 다음은 if 문에서 false로 변환되므로, 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
- OR 연산자는 truthy한 값을 만나면, 그 값을 출력
문자열
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 = '[email protected]';
const loginEmail = ' [email protected] \n';
const lowerEmail = loginEmail.toLowercase();
const trimmedEmail = lowerEmail.trim();
console.log(trimmedEmail) // '[email protected]'
str.replace
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, ...);의 형태로도 사용 가능
var str = 'CodeStates';
console.log(str.length); //10
'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
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"]
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로 취급
const email = '[email protected]';
const loginEmail = ' [email protected] \n';
const lowerEmail = loginEmail.toLowercase();
const trimmedEmail = lowerEmail.trim();
console.log(trimmedEmail) // '[email protected]'
어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환
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 여부를 잘 기억해야함)
Author And Source
이 문제에 관하여(TIL.Day2 (조건문, 문자열)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wpdbs4419/Day2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)