조건문은 특정 조건을 판별하는 기준을 만드는 것을 의미한다. 이때 컴퓨터는 주어진 조건에 따라 각기 다른 명령을 수행하게 된다.
따라서 조건문은 비교 연산자(!===, ===, <, <=, >, >=) 가 필요하다.
// 이중 등호는 예외사항이 너무 많다!
비교의 결과는 항상 Boolean 타입이다. // true or false
조건문의 일반적인 형태는 다음과 같다. (무조건 다음과 같은 형태라는 것은 아니다.)
if(조건 1) {
//조건 1을 충족한 경우
} else if (조건 2) {
// 조건 1을 충족하지 않은 것 중에 조건 2를 충족한 경우
} else {
// 모든 조건을 충족하지 못하는 경우 : 나머지
}
우리는 때로 if문의 조건에 한가지 이상의 복수 조건을 적용하는 경우가 존재한다. 이는 보다 간소화된 코드를 위해 if문의 사용 횟수를 최소화하기 위해서이다.
논리연산자의 종류는 다음과 같다.
- && - and 연산자 : 복수의 값이 모두 true일 때 true를 반환한다.
- || - or 연산자 : 복수의 값 중 하나만 true여도 true를 반환한다.
- ! - not 연산자 : truthy 혹은 falsy한 값을 반전시킨다. (반대로 바꾼다.) - 중첩이 가능하다.
논리 연산자의 예제는 다음과 같다.
true && true; // true
true && false; //false
true || false; // true
false || false; // false
!true // false
!!true // true
일반적으로 if문의 조건 안에는 결과가 Boolean인 비교 연산자를 포함한 표현식이 삽입되지만, 자바스크립트에서는 데이터들도 해당 값의 true, false 여부가 존재한다.
이를 truthy한 값 혹은 falsy한 값이라고 부른다. 하지만, 대표적인 6가지의 falsy한 값을 제외하고는 모두 truthy한 값이기 때문에 대표적인 6가지의 falsy한 값만 알아보자.
위에 나열한 값들은 단일 개체로 if문의 조건에 들어갈 시 false로 취급되어 if문이 동작하지 않지만 !(not) 연산자와 함께 사용할 경우 if문을 동작시킬 수 있다.
문자열은 한 글자 단위(character)로 접근할 수 있고 이때, index를 사용하여 접근하게 된다.
const text = 'Hello!'; // 이때 e는 text[1], index는 0부터 시작한다.
문자열의 결합은 '+' 연산자를 사용하고 연산의 대상이 문자열이 아닌 경우 문자열로 강제 변환되어 결합된다.
하지만, 객체의 경우 참조형 타입이기 때문에 '[object Object]'의 형태로 결합된다.
'abc' + 12; // 'abc12'
123 + [1, 2, 3] // '1231, 2, 3'
abc + {
name : 'man',
age : 14
}; // 'abc[object Object]'
문자열에는 'length' 라는 속성(property)이 존재하며, 이는 문자열의 길이를 반환한다.
'abc'.length; // 3
이때, 문자열과 관련된 method 는 모두 IMMUTABLE method로 원형은 변화하지 않는다.
method 실행 결과가 필요한 경우, 해당 변수 혹은 새로운 변수에 할당해야 한다.
indexOf(argument); => 찾는 문자열이 존재하는 index 반환 / 값이 존재하지 않을 경우 -1 반환
'abcd'.indexOf('b'); // 1
'abcd'.indexOf('f'); // -1
lastIndexOf(argument); => 찾는 문자열이 가장 마지막에 존재하는 index 반환 / 값이 존재하지 않을 경우 -1 반환
'abcdabcd'.lastIndexOf('b'); // 5
'abcdabcd'.lastIndexOf('f'); // -1
includes(argument); => 찾는 문자열의 존재 여부 확인 / true or false 반환
'abc'.includes('a'); // true
'abc'.includes('f'); // false
split(seperator) => 구분자 기준으로 분리 후 배열 형태로 반환
공백문자, 개행문자, 특수문자 등을 구분자로 사용 가능
'ab cd'.split(' '); // ['ab', 'cd']
'ab\ncd'.split('\n'); // ['ab', 'cd']
substring(start, end) => start 와 end 를 index로, 그 사이의 문자열을 반환
// 3, 0 처럼 start가 높은 경우 0, 3처럼 반대로 생각할 것
// substring(3, 1) => substring(1, 3)
// 음수는 0으로 취급, index를 벗어난 경우 마지막 char까지 반환
'abcdef'.substring(1, 4); // bcd
'abcdef'.substring(4, 1); // bcd
'abcdef'.substring(-1, 4); // abcd
'abcdef'.substring(1, 10); // abcdef
toLowerCase(), toUpperCase() => 소문자로 변환, 대문자로 변환
'ABCD'.toLowerCase() // abcd
'abcd'.toUpperCase() // ABCD
참조:
CodeStates_SEB_FE 학습 콘텐츠