🤹🏻‍♀️ Javascript

조건문, 반복문, 함수, 객체 등

ji-hyun 2021. 10. 3. 21:34

> let change = '바꿔 봐';

< undefined

 

> change = '바꿨다';

< "바꿨다"

 

"바꿨다"에서 결괏값이 있는 이유는?

let으로 변수를 선언할 때는 콘솔의 결괏값이 undefined 이지만, 변수의 값을 바꿀 때는 결과로 바꾼 값이 나온다. 이는 let 의 역할 때문이다. let이 없을 때는 코드가 식이라서 대입한 값이 결괏값으로 출력되지만, let이 앞에 붙는 순간 선언문이 된다. 

 

 

 

다음 if 문을 switch 문과 조건부 연산자로 바꿔 보세요.

switch (cond) {

 case true:
  value='참';
  break;

 case false:
  value='거짓';
  break;

 

 

조건부 연산자 ?

value = cond ? '참' : '거짓' ; 

 

 

 

 

 

구구단을 출력하되, 결과에 짝수가 하나도 나오지 않게 해보세요. continue 문을 사용하세요.

 

let result = 0;
for (i=1; i<=9; i++){
  for(j=1 ; j<=9; j++){
    result = i * j;
    if (result % 2 == 0) continue;
    console.log(i 'x' j '=' result);
    }
    }

 

↑ 내가 쓴 코드

 

피드백: === 으로 고쳐쓰는게 좋다!

그리고 console.log(i, '*', j, '=', i*j); 이렇게 반점 써야 한다.

 

 

근데 중간에 (i%2 === 0 || j%2 === 0) 이렇게 하는게 더 좋겠구만..

 

 

 

 

 

 

 

 

별찍기 숙제 (아래와 같은 모양으로 구현할 것)

*

**

***

****

*****

 

 

 

 

let star = '*'
for(i=1 ; i<=5; i++){
  star += 1;
  console.log(star);
}

 

아 이거는 NaN 되는구나 (틀린 코드임)

 

 

 

 

한개일때는 문자 1개 출력

두개 일때는 문자 2개 출력

세개 일때는 문자 3개 출력

 

 

let star = '*'
for(i=5 ; i>=1; i--){
  for(j=i; j>=1; j--){
  console.log(star);
  } 
  console.log('\n');
}

 

이렇게 쓰면 안되는 걸까? 찾아보기!!

 

 

 

 

 

아래가 맞는 코드다

 

for (let i=0; i<5; i++){
   console.log('*'.repeat(i+1))
}


for (let i=5; i>=1; i--){
   console.log('*'.repeat(i))
}

 

 

 

 

 

 

for 반복문 i=0; i<5; i++ 로 고정하고 별을 반대모양으로 출력하라.

 

-> 도저히 모르겠어서 힌트를 보았다

-> 규칙을 찾으면 된다

 

ex.

0 -> 5

1 -> 4

2 -> 3

3 -> 2

4 -> 1

 

 

for (let i=0; i<5; i++){  
   console.log('*'.repeat(5-i) ); 

} 이게 강사님 코드

 

 

 

이번엔 1,3,5,7,9

 

for (let i=0; i<10; i++){  

   if ( i % 2 ==1 )
   console.log('*'.repeat(i) );

}

 

 

이번엔 감소

 

for (let i=10; i>0; i--){ 

   if ( i % 2 ==1 )
   console.log('*'.repeat(i) );

}

 

 

이번엔 앞에 공백을 두면서 출력할 것

예를 들어, 

    *

   **

  ***

 ****

*****

 

이런 식으로!

힌트는 console.log(' '.repeat(2) + '*'.repeat(3))

출력하면 

  *** 이렇게 나옴

 

 

2 1 2

1 3 1

0 5 0

1 3 1

2 1 2

 

 

for(i=1; i<=5; i++){
    if(i%2 ==1) {
console.log(' '.repeat((5-i)/2) + '*'.repeat(i) + ' '.repeat((5-i)/2));
}
}

 

 

 

 

 

 

 

 

라 제거하기

 

let result=0;
const arr=['가','라','다','라','마','라'];
for(i=0; i<arr.length; i++){
    if(arr[i]=='라'){
        result=arr.indexOf('라');
        arr.splice(result, 1);
        
    }
}
console.log(arr);

 

내가 쓴거

 

 

 

 

강사님이 쓴거는 

while(arr.indexOf('라')>=1){
  arr.splice(arr.indexOf('라'),1)
}

 

 

 

 


노마드 코더도 복습

 

const player = {
    name: 'nico',
    sayHello: function() {
        console.log("hello");
    },
   };
   
    function sayHello() {

    }

 

함수를 객체 안에서 선언하는 방법은 위와 같다.

 

 

 

const player = {
    name: 'nico',
    sayHello: function(peopleName) {
        console.log("hello " + peopleName);
    },
   };
   
    console.log(player.name);
    player.sayHello("leen");

 

console.log 에서 log 가 함수인 것처럼 player 의 함수 sayHello 도 위와 같이 호출할 수 있다.

 

 

 

 

const calculator = {
    plus: function (x, y) {
        return x + y;
    },
    minus: function (x, y) {
        return x - y;
    }
};

plusResults = calculator.plus(3, 4);
minusResults = calculator.minus(2, 1);

console.log(plusResults);
console.log(minusResults);

 

간단한 계산기

 

 

 

 

 

const age = parseInt(prompt('how old are you?'));

if (isNaN(age)) {
    console.log('please write a number');
}

 

isNaN 함수는 숫자가 아닌 것을 넣으면 true 로 나오는 함수이다.

 

 

 

 

 

console.dir(document);

-> document 는 html 을 보여주는 것이다.