728x90
📍 9일 차 11.5. 금.(온라인 강의)
오늘은 어제에 이어 JS
기초 문법 및 활용에 대해서 배웠다. 문법은 어렵지 않았는데 예제문제들을 풀 때 edge Case
가 잘 떠오르지 않아서 조금 헤맸다.
❏ 연산자
- 산술 연산자: 사칙연산,
%(나머지)
, 숫자 뿐만 아니라 문자열도 산술 연산자 사용 가능 (문자열은 서로 붙어서 출력된다.+
는 문자열이 붙여서 출력, 나머지는 숫자로 바꿔서 계산)
console.log(20 + 10); // 30
console.log(20 - 10); // 10
console.log(20 * 10); // 200
console.log(20 / 10); // 2
console.log(20 % 10); // 0
- 증감 연산자:
++
: 1씩 증가,--
: 1씩 감소 (전치 연산자는 먼저 연산을 하고 출력한다. 후치 연산자는 먼저 출력을 하고 연산한다.)
let num = 10;
console.log(++num); // 11
console.log(--num); // 10
console.log(num++); // 10
console.log(num--); // 11
- 비교 연산자: 데이터의 대소비교
console.log(10 == 20); // false, 값이 같다
console.log(10 === 20); // false, 데이터 타입도 같고 값도 같다.
console.log(10 !== 20); // true
console.log(10 > 20); // false
console.log(10 >= 20); // false
console.log(10 < 20); // true
console.log(10 <= 20); // true
- 논리 연산자
console.log(10 === 10 && 20 === 30); // false, 앞 뒤 조건 모두 참인 경우만 true를 반환하는 AND 연산자
console.log(10 === 10 || 20 === 30); // true, 둘 중 하나만 참이여도 true를 반환하는 OR 연산자
❏ 조건문
if
문:if(조건){수행할 명령}
let a = 20;
let b = 40;
if( a < b){
console.log("a는 b보다 작다.");
}
if-else
문: 조건이true
면if
문,false
면else
문 실행
let a = 20;
let b = 40;
if( a < b){
console.log("a는 b보다 작다.");
} else {
console.log("a는 b보다 작거나 같다.");
}
else-if
문: 여러 개의 조건문을 생성할 때 사용, 참인 조건이 여러 개면 위에서부터 참인 조건문만 반환
let a = 20;
let b = 40;
let c = 60;
if( a > b){
console.log("a는 b보다 크다.");
} else if (b > c){
console.log("b는 c보다 크다.");
} else if (a < c){
console.log("a는 c보다 작다.");
} else if (b < c){
console.log("b는 c보다 크다.");
} else {
console.log("모든 조건을 만족하지 않는다.");
}
중첩 if문
: if문 안에 또 다른 if문을 삽일 할 때 사용
let a = 20;
let b = 40;
if( a !== b){
if (a > b) console.log("a는 b보다 크다");
else console.log("a는 b보다 작다");
} else {
console.log("a와 b는 같다.");
}
728x90
❏ 반복문
for
문:for( 초기화 한 변수값; 조건; 증감 표시){ 수행할 명령 }
for (let i=0; i<10; i++){
console.log(i);
}
while
문:while( 조건 ) {수행할 명령}
let num = 0;
while (num < 10){
console.log(num);
num++;
}
do - while
문:do {수행할 명령} while (조건)
,while
의 조건과 관계없이,do
의 명령을 무조건 실행부터 한다. (재시도를 테스트하는 상황에 활용 가능)
let i = 12;
do {
console.log(i);
i++;
} while (i < 10);
❏ 자바스크립트 활용
자바스크립트를 이용하여 구현 문제들을 풀었는데, 강의에서 배운 코드 대신 내가 작성한 코드를 올린다. (테스트 문제는 올리지 않겠다.)
- 주사위 게임
// 1. Math.random(): 0 ~ 1사이 랜덤한 값을 출력한다.
// 2. Math.random() * 6: 0 ~ 6사이 랜덤한 값을 출력한다.
// 3. (Math.random() * 6) + 1: 1 ~ 6 사이 랜덤한 값을 출력한다.
// 4. Math.floor((Math.random() * 6) + 1): 소수점을 버린다.
let dice = Math.floor(Math.random() * 6) + 1;
- 소수 출력하기: 이전에 프로그래머스에서 한번 푼 적 있는데 반복문의 범위를 `1~n`까지 찾는 것보다 `n`을 2로 나누고 1을 더한 범위까지만 순회하면 시간 복잡도를 효과적으로 줄일 수 있다.
// 나의 코드
function isPrime(n){
if(n === 1) return false;
for (let i=2; i<Math.floor(n/2)+1; i++){
if (n%i===0) return false;
}
return true;
}
- 문자열 거꾸로 출력하기: 강의에서는
charAt
메소드를 사용했는데 그것보다 문자열 인덱싱으로 풀었다.
// 나의 코드
function reverse(str){
var reverStr = "";
for (let i=str.length-1; i>=0; i--){
reverStr += str[i];
}
return reverStr;
}
document.write(reverse("Nice to meet you"));
- 구구단 출력하기
for(let i=2; i<=9; i++) {
for(let j=1; j<=9; j++){
document.write(`${i}x${j}=${i*j}`);
document.write("<br>")
}
}
timesTable(2); // 2단만 출력
timesTable(3); // 3단만 출력
반응형
'Frontend > 엘리스 SW 엔지니어 트랙' 카테고리의 다른 글
[ 엘리스 SW 엔지니어 트랙 ] 11일차(3주차: 자바스크립트 II - DOM, event, this, closure) (0) | 2021.11.09 |
---|---|
[ 엘리스 SW 엔지니어 트랙 ] 10일차 (0) | 2021.11.06 |
[ 엘리스 SW 엔지니어 트랙 ] 8일차 (0) | 2021.11.04 |
[ 엘리스 SW 엔지니어 트랙 ] 7일차 (0) | 2021.11.03 |
[ 엘리스 SW 엔지니어 트랙 ] 6일차 (2주차: 자바스크립트 I - 연산자, 기초 개념) (0) | 2021.11.02 |
댓글