[JS] 조건문, 문자열
조건문
boolean 은 참과 거짓을 나눈다.
<aside> 👉 조건문은 어떠한 조건을 판별하는 기준
</aside>
조건문에는 반드시 비교연산자가 필요하다.
비교의 결과는 늘 boolean 즉 true 또는 false
대입연산자 '='
동등연산자 '==='
다르다는 ‘!==’
<aside> 🚫 == , != 사용권장X ,, 값만 비교하며 예외사항이 많아 에러확률 올라감
</aside>
JS의 조건문은 기본적으로
- if
- else if
- else 사용
if(조건1) {
// 조건1이 통과할 경우
}
else if (조건2) {
// 조건1이 통과하지 않고
//조건2가 통과할 경우
}
else {
// 모든 조건이 통과하지 않는 경우
}
두가지 조건이 한번에 적용되는 경우?
→ 논리연산자를 사용!
- && : and 연산자
- || : or 연산자
- ! : not 연산자 (!isStudent 같이 씀)
Quiz //
⚠️ !undefined
💡 true → undefined를 false로 취급( falsy )
⚠️ !'HELLO'
💡 false → 'HELLO'를 true로 취급( truthy )
⚠️ 기억해야할 falsy 6가지! → if문에서 false로서 if구문 실행X
false, null, undefined, 0, NaN, ‘ ’
if (false)
if (null)
if (undefined)
if (0)
if (NaN) → NOT A NUMBER 숫자키워드
if (' ')
console.log('hello' === 'world') // false
console.log('hello' !== 'world') // true
let str = '100'
let num = 100
console.log(str === num) false
console.log(true && true) true
console.log(true && false) false
console.log(false && true) false
console.log(false && false) false
let isStudent = true;
let isFemale = true;
console.log(isStudent && isFemale) true
console.log(isStudent && !isFemale) false
console.log(!isStudent && isFemale) false
console.log(!isStudent && !isFemale) false
console.log(true || true) true
console.log(true || false) true
console.log(false || true) true
console.log(false || false) false
문자열
문자열의 특징 : index로 접근은 가능하지만 값을 바꿀수는 없음.
read only // 할당할때만 값이 바뀐다.
var str = '코드'
consol.log(str[0]);
str[0] = '카'; // 변경 시?
consol.log(str); // 에러 -> 안바뀜
문자열에 + 로 연결시킬수 있다.
var str1 ='코드';
var str2 ='스테이츠';
var str3 = '1';
consol.log(str1 + str2); // '코드스테이츠'
consol.log(str3 + 7); // '17'
consol.log('1' + true) // '1true'
concat → str2, str3 모두 더하는 메소드
str.concat(str2, str3 ... ) ; 의 형태로 사용가능 // 그냥 + 연산자 쓰자
length PROPERTY
문자열의 전체 길이를 반환
var str = '하이'
consol.log(**str.length**); // 2
메소드
str.indexOf(searchValue)
→ 문자열을 찾을때 쓰임.
arguments : 찾고자 하는 문자열
return value : 처음으로 일치하는 index 표현, 찾고자 하는 문자열이 없으면 -1
두번 연속으로 등장하면 처음 나오는 인덱스 기준으로 출력
lastIndexOf **** : 문자열 뒤에서부터 찾는다.
실무에서는 includes 메소드를 쓸수가 있다 → true || false 로 return
'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
'일어나라 아침해 떳다'.includes('아침해'); // true 출력
str.split(seperator)
arguments : 분리 기준이 될 문자열
return value : 분리된 문자열이 포함된 배열
→ 문자열을 분리할때 쓰임.
csv형식 (comma seperate value) // 111,222,333,444
줄바꿈을 \n 으로 표현함! →
var str = "안녕 반가워";
consol.log(str.split(' ')); // ['안녕' , '반가워' ] 출력 -> 배열로 나옴
// csv 형식에서 많이 사용
consol.log(str.split('\\n')); // 줄바꿈으로 다 나눔
// 이걸 나중에 나눠서 배열로 사용가능!
let lines = str.split('\\n'); // lines 에 칸 나눔 배열 저장
lines[0].split(',') // lines의 첫번째 줄을 ,로 나눔
str.substring(start, end)
argumnets : 시작 index , 끝 index
return value: 시작과 끝 index 사이의 문자열
var str = 'abcdefghij';
consol.log(str.substring(0,3)); //'abc'
consol.log(str.substring(3,0)); //'abc'
consol.log(str.substring(1,4)); //'bcd'
consol.log(str.substring(-1,4)); //'abcd, 음수는 0으로 취급!!
consol.log(str.substring(0,20)); //'abcdefghij' ,index 범위 밖이면 마지막index로.
str.toLowerCase() // str.toUpperCase()
(모든 STRING 메소드는 IMMUTABLE 원본이 변하지않음) → 변경원하면 새로 다시 대입하기
argument : 없음
return value: 대, 소문자로 변환된 문자열
console.log('ABCDE'.toLowerCase()); // 'abcde'
console.log('abcde'.toUpperCase()); // 'ABCDE'
.length
문자열의 길이를 리턴합니다.
let str = 'code states';
console.log(str.length)
indexOf()
문자열 내에 지정된 요소가 위치하고 있는 첫 번째 인덱스를 리턴합니다. 지정된 요소가 문자열 내에 존재하지 않을 경우 -1을 리턴합니다.
let str = 'code states'
console.log(str.indexOf('s'))
console.log(str.indexOf('i'))
split()
문자열을 지정한 구분자를 이용하여 여러 개의 문자열로 나눈 후 배열의 형태로 리턴합니다.
let str = '가, 나, 다, 라, 마, 바';
let word = str.split(',');
console.log(word);
- ['가', '나', '다', '라', '마', '바']
let str = '아주 피곤한 날이다';
let word = str.split(' ');
console.log(word);
- ['아주', '피곤한', '날이다.']
let alphabet = '가나다라마';
let char = alphabet.split('');
console.log(char)
- ['가', '나', '다', '라', '마']
toUpperCase()
소문자를 대문자로 변환합니다.
let alphabet = 'abcdefghijklmnopqrstuvwxyz';
console.log(alphabet.toUpperCase());
- ABCDEFGHIJKLMNOPQRSTUVWXYZ
toLowerCase()
대문자를 소문자로 리턴합니다.
let alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
console.log(alphabet.toLowerCase())
- abcdefghijklmnopqrstuvwxyz
Number 자료형이 Number() 함수, parseInt() 함수를 사용해서 자료형을 변환할 수 있는 것처럼 Boolean 자료형도 Boolean 함수를 이용해서 다른 자료형을 Boolean 자료형으로 변환이 가능하다.
//임의의 값을 입력받아 falsy 값인지 여부를 리턴
function isFalsy(anything) {
return !Boolean(anything)
}
let booleanVar1 = Boolean("String");
let booleanVar2 = Boolean(null);
let booleanVar3 = Boolean(undefined);
let booleanVar4 = Boolean(4);
let booleanVar5 = Boolean(true);