[TIL] JavaScript 기초 제어문 part.1

lmimoh·2022년 8월 23일
0

TIL

목록 보기
2/26
post-thumbnail

조건문(Conditional Statement)

조건문은 특정 조건을 판별하는 기준을 만드는 것을 의미한다. 이때 컴퓨터는 주어진 조건에 따라 각기 다른 명령을 수행하게 된다.

따라서 조건문은 비교 연산자(!===, ===, <, <=, >, >=) 가 필요하다.
// 이중 등호는 예외사항이 너무 많다!
비교의 결과는 항상 Boolean 타입이다. // true or false

조건문의 일반적인 형태는 다음과 같다. (무조건 다음과 같은 형태라는 것은 아니다.)

if(조건 1) {
	//조건 1을 충족한 경우
} else if (조건 2) {
	// 조건 1을 충족하지 않은 것 중에 조건 2를 충족한 경우
} else {
	// 모든 조건을 충족하지 못하는 경우 : 나머지
}

논리연산자(Logical Operator)

우리는 때로 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

truthy 혹은 falsy한 값

일반적으로 if문의 조건 안에는 결과가 Boolean인 비교 연산자를 포함한 표현식이 삽입되지만, 자바스크립트에서는 데이터들도 해당 값의 true, false 여부가 존재한다.

이를 truthy한 값 혹은 falsy한 값이라고 부른다. 하지만, 대표적인 6가지의 falsy한 값을 제외하고는 모두 truthy한 값이기 때문에 대표적인 6가지의 falsy한 값만 알아보자.

  • false
  • null
  • undefined
  • 0
  • NaN
  • '' (빈 문자열)

위에 나열한 값들은 단일 개체로 if문의 조건에 들어갈 시 false로 취급되어 if문이 동작하지 않지만 !(not) 연산자와 함께 사용할 경우 if문을 동작시킬 수 있다.


문자열(String) 다루기

문자열에 대해서

문자열은 한 글자 단위(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

이때, 문자열과 관련된 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 학습 콘텐츠

profile
성장하는 개발자, 이민훈입니다.

0개의 댓글