본문 바로가기
Frontend/엘리스 SW 엔지니어 트랙

[ 엘리스 SW 엔지니어 트랙 ] 9일차

by YWTechIT 2021. 11. 5.
728x90

📍 9일 차 11.5. 금.(온라인 강의)

오늘은 어제에 이어 JS 기초 문법 및 활용에 대해서 배웠다. 문법은 어렵지 않았는데 예제문제들을 풀 때 edge Case가 잘 떠오르지 않아서 조금 헤맸다.

 


❏ 연산자

  1. 산술 연산자: 사칙연산, %(나머지) , 숫자 뿐만 아니라 문자열도 산술 연산자 사용 가능 (문자열은 서로 붙어서 출력된다. + 는 문자열이 붙여서 출력, 나머지는 숫자로 바꿔서 계산)
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씩 증가, --: 1씩 감소 (전치 연산자는 먼저 연산을 하고 출력한다. 후치 연산자는 먼저 출력을 하고 연산한다.)
let num = 10;

console.log(++num);  // 11
console.log(--num);  // 10

console.log(num++);  // 10
console.log(num--);  // 11
  1. 비교 연산자: 데이터의 대소비교
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
  1. 논리 연산자
console.log(10 === 10 && 20 === 30);  // false, 앞 뒤 조건 모두 참인 경우만 true를 반환하는 AND 연산자
console.log(10 === 10 || 20 === 30);  // true, 둘 중 하나만 참이여도 true를 반환하는 OR 연산자

❏ 조건문

  1. if 문: if(조건){수행할 명령}
let a = 20;
let b = 40;
if( a < b){
    console.log("a는 b보다 작다.");
}
  1. if-else 문: 조건이 trueif문, falseelse 문 실행
let a = 20;
let b = 40;

if( a < b){
    console.log("a는 b보다 작다.");
} else {
    console.log("a는 b보다 작거나 같다.");
}
  1. 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("모든 조건을 만족하지 않는다.");
}
  1. 중첩 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

❏ 반복문

  1. for 문: for( 초기화 한 변수값; 조건; 증감 표시){ 수행할 명령 }
for (let i=0; i<10; i++){
    console.log(i);
}
  1. while 문: while( 조건 ) {수행할 명령}
let num = 0;

while (num < 10){
    console.log(num);
    num++;
}
  1. do - while 문: do {수행할 명령} while (조건), while 의 조건과 관계없이, do 의 명령을 무조건 실행부터 한다. (재시도를 테스트하는 상황에 활용 가능)
let i = 12;

do {
    console.log(i);
    i++;
} while (i < 10);

❏ 자바스크립트 활용

자바스크립트를 이용하여 구현 문제들을 풀었는데, 강의에서 배운 코드 대신 내가 작성한 코드를 올린다. (테스트 문제는 올리지 않겠다.)

  1. 주사위 게임
// 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. 소수 출력하기: 이전에 프로그래머스에서 한번 푼 적 있는데 반복문의 범위를 `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;
}
  1. 문자열 거꾸로 출력하기: 강의에서는 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"));
  1. 구구단 출력하기
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단만 출력
반응형

댓글