조건문
어떠한 조건에 맞다 아니다를 정의하는 구문 -> boolean 의 속성을 갖는다.
때문에 반드시 비교 연산자가 필요하다.
=== : 같다(등호)
!== : 다르다
if, else if, else
- if : 어떠한 조건이라면(조건 1)
- else if : 조건 1이 아니고 이 조건이라면(조건 2)
- else : 이도 저도 아니라면
논리 연산자
- && : 둘 다 포함되는 조건(and 조건)
- || : 이거 또는 저거(or 조건)
- ! : not 연산자(truthy, falsy 여부를 반전시킴) ex) !false -> true
기억해야 할 6가지 falsy 값
- false
- null
- undefined
- 0
- NaN
- ''
위 값들은 if문에서 falsy한 값을 반환하기 때문에 실행되지 않는다.
문자열
문자열의 index검색 기능
- 문자열은 첫 글자가 0부터 시작하며, 대괄호[ ] 를 사용하여 index를 검색할 수 있다.
let word = 'abcdefg'
- index 접근은 가능하지만, 재할당은 불가능하다.
- ex) word[3] = 'z' 라고 해도 word !== 'abczefg' 가 되는게 아님
- 플러스(+) 연산자를 사용하여 string 타입 간 합치가 가능하다.
- 플러스 연산자 사용 시, string타입이 있다면 다른 요소도 string타입으로 반환하여 합치된다.
- ex) 'abc' + 1 === 'abc1'
.length
문자열의 길이를 나타낸다
.indexOf, .lastIndexOf
indexOf : 해당 문자열이 몇 번 째 index에 위치했는지 나타낸다.
lastIndexOf : 해당 문자열이 뒤에서부터 나타났을 때 몇 번 째 index에 위치했는지 나타낸다.
- ex) 'canal' -> lastIndexOf('a') === 3 뒤에서 처음 나타난 a가 3번째 index에 위치함.
.split
해당 문자를 기준으로 분리하여 배열의 형태로 반환한다.
- ex) let str = 'hello world' -> str.split(' ') === ['hello', 'world']
.substring(a, b)
해당 문자를 a부터 b-1까지 반환한다.
- ex) str.substring(0, 4) === 'hell'
.toLowerCase(), .toUpperCase()
해당 문자를 다 소문자로 혹은 대문자로 바꾼다.
꼭 소괄호( )를 써야한다.
mutable, immutable
모든 string type은 원본이 변하지 않는 immutable
하지만 배열의 경우 mutable 혹은 immutable 둘 다 있다.