💡 이번에 배운 내용
- Section1.
웹 프론트엔드 개발의 기초지식을 기반으로 스스로 단순한 Web App을 만들 수 있다.- Unit3. Javascript 기초 제어문: 기초 제어문인 조건문과 반복문, 그리고 문자열에 대해 학습한다.
조건문과 반복문의 개념은 크게 어려울 게 없었지만, 막상 알고리즘 문제를 풀어보니 복잡하고 그 활용이 무궁무진했다. 문제 푸는 데 시간이 오래걸렸다.
문자열은 은근 메서드가 많아 확실하게 공부하는데에 시간이 좀 걸렸다.
차근차근 돌다리도 두들기며 공부한 결과 알고리즘 문제를 푸는 데 큰 도움이 되었다.
그리고 이번 기외에 템플릿 리터럴을 처음 써봤는데 이렇게나 편할 수가 없다!
이번에 공부한 내용도 잘 복습하고 마무리해 나의 실력을 Up하는데 잘 쓸 예정이다.😀
조건문, 비교 연산자, 논리 연산자, falsy, indexOf(), split(), substring(), slice(), for문, while문, 반복문
조건문을 이해하기 위해서는 먼저 Boolean 타입에 대한 이해가 필요하다.
boolean타입에는 true, false 두 가지가 필요하다.
어떠한 조건을 판별하는 기준을 만드는 것이다.
조건문에는 반드시 비교 연산자가 필요하다.
비교의 결과는 늘 true 또는 false이다.
기호 | > | < | >= | <= | === | !== |
---|---|---|---|---|---|---|
의미 | 초과 | 미만 | 이상 | 이하 | 같다 | 다르다 |
조건문은 아래와 같이 사용한다.
if(조건1){
//조건1이 true일 경우 실행
}else if(조건2){
//조건1은 false이고
//조건2가 true일 경우 실행
}else{
//조건1이 false이고
//조건2도 false일 경우 실행
}
조건이 동시에 2가지 이상일 때 사용한다.
아래 값들의 결과는 어떻게 될까?
개발자도구에서 직접 해보자.
그럼 아래 비교 연산의 결과는 어떻게 될까?
false, null, undefined, 0, NaN, ''(빈 문자열)
은 조건문 사용시 결과가 false가 나온다.
if('') //false
if(NaN) //false
if(0) //false
문자열은 ''나 ""로 감싼 타입 중 하나로 string이다.
문자 하나는 character라고 하며 줄여서 char라고 하기도 한다.
원본값을 재료로 변형하는 메서드 중에는 바뀐 값을 원본값에 적용하는 경우와 원본값의 복사본을 변형하여 반환하는 경우가 있다.
앞으로 javascript를 공부할 때 해당내용을 체크해가면서 공부할 예정이다.
length를 사용하여 구할 수 있다:
let str='hello';
console.log(str.length); //5
str을 예시로 알아본다. 알아보기에 앞서
.으로 시작하는 건: 메서드
()안에 들어가는 건 전달인자 : arguments
실행 결과는 : return value
참고로 string메서드는 모두 immutable이다.
str.indexOf(찾고자하는 문자열)
str.includes(찾고자하는 문자열)
str.split(분리 기준이 될 문자열) ★
let csv=`이름,생년,월,일,국어 점수,영어 점수,수학 점수
홍길동,1992,7,17,100,90,70
희동이,1992,4,3,90,100,100` // ``(백틱)을 사용해 감쌌다.
let lines=csv.split('\n'); //\n은 줄바꿈 기호를 뜻한다.
console.log(lines[0]); //'이름,생년,월,일,국어 점수,영어 점수,수학 점수'
let lines1Data=lines.split(',');
console.log(lines1Data); //['이름', '생년', '월', '일', '국어 점수', '영어 점수', '수학 점수']
console.log(lines1Data[0]); // '이름'
str.substring(시작index, 끝 index)
str.slice(시작index, 끝 index)
str.toLowerCase(), str.toUpperCase()
따로 전달인자 없이 사용하며 각각 소문자, 대문자로 변환하여 반환한다.
str.trim()
따로 전달인자 없이 사용하며 양끝(가운데 제외)의 공백을 제거한다.
문자 | 뜻 |
---|---|
\n | New line(줄 바꿈) |
\r | Carriage return(줄바꿈, 다음 줄의 맨 앞) |
\t | Tab |
자세한 내용과 출처: javascript MDN - 문법과 자료형
템플릿 리터럴은 내장된 표현식을 사용할 수 있는 문자열 리터럴이다.
사용시 백틱(₩₩)으로 감싸 사용하며 플레이스홀더(${}, 중괄호 안에 표현식을 넣는다)로 표현식을 사용할 수 있다.
이랬던 식을
let num1=4, num2=6;
let str=num1+'곱하기 '+num2+'의 곱은 '+(num1*num2)+'입니다.'
console.log(str); //4곱하기 6의 곱은 24입니다.
이렇게 사용할 수 있다.
let num1=4, num2=6;
let str=₩${num1}곱하기 ${num2}의 곱은 ${num1*num2}입니다.₩
console.log(str); //4곱하기 6의 곱은 24입니다.
자세한 내용과 출처: javascript MDN - template literals
정규표현식, match() 등의 이와 관련된 메서드들은 추후에 더 자세히 공부할 예정이다.
반복문은 이름 그대로 코드를 여러 번 반복시키는 구문이다.
()안에 초기화, 조건식, 증감문을 넣고 {}안에 반복할 구문을 입력한다.
let sum=0;
//for문
for(let i=1; i<11; i=i+1){ //(초기화; 조건식; 증감문)
sum=sum+i; //반복할 구문
}
console.log(sum); //55
()안에 조건식을 넣고, {}안에는 증감문을 넣는다. 초기화는 범위 바깥에 미리 설정한다.
while문은 조건식이 true일 동안 실행된다.
let sum=0;
let i=1; //초기화
//while문
while(i<11){ //(조건식)
sum=sum+i;
i=i+1; //증감문
}
console.log(sum); //55
반복되는 코드블록에서 나와야 할 때 사용한다.
let str;
for(let i=1;i<10;i++){
if(i===4){
str='4를 찾았다!';
break; //반복되는 영역을 나와 탈출!
}
}
1. NaN===NaN은 왜 false일까?
NaN은 다른 모든 값과 비교했을 때 같지 않으며, 다른 NaN과도 같지 않기 때문이다.
만약 NaN의 값이 맞는지 아닌지 판별하기 위해서는 isNaN()을 사용해야 한다.
* 출처: javscript MDN 참조
2. substring VS slice (둘의 차이점은?)
아래의 예제를 보자!
let str='Hello World!';
console.log(str.length); //12
console.log('start>end인 경우 substring', str.substring(6,2)); //'llo'
console.log('start>end인 경우 slice', str.slice(6,2)); //''
console.log('start가 음수인 경우 substring', str.substring(-2, 7)); //'Hello W'
console.log('start가 음수인 경우 slice', str.slice(-2, 7)); //''
console.log('end가 음수인 경우 substring', str.substring(0, -4)); //''
console.log('end가 음수인 경우 substring', str.slice(0, -4)); //'Hello Wo'
참고 및 출처: 링크
3. for문과 while문의 차이는?
while문과 for문에 큰 차이는 없다. 다만
1. 초기화가 필요없고 증감문이 필요없을 때 주로 while문을 사용한다.
2. 반복횟수가 명확할 때 for문을, 반복횟수가 명확하지 않을 때는 while문을 쓰는 편이다.
4. join() 이 무엇인지? (추가공부)
배열의 모든 요소들을 연결해 하나의 문자열로 만든다.
()안에 생략할 경우 각 요소들을 쉼표(,)로 연결하고,
()안에 넣은 문자열을 기준으로 요소들을 연결한다.
만약 join('')로 실행하면 모든문자들이 붙여서 출력된다.