DAY 2 - javascript

연주·2022년 11월 15일
0

TIL

목록 보기
10/37

22.11.16 화

DAY 2 - javascript (기초다지기)


📌 함수

  • 매개변수 === 인자(parameter)
    : 함수 선언 시 괄호 사이에 있는 변수
  • 인수(argument)
    : 호출할 때 매개변수에 전달되는 값

📖 풀어보기

✏️'?'나 '||'를 사용하여 함수 다시 작성하기

function checkAge(age) {
  if (age > 18) {
    return true;
  } else {
    return confirm('보호자의 동의를 받으셨나요?');
  }
}

➡️

function checkAge(Age){
	Age > 18 ? true : confirm('보호자의 동의를 받으셨나요?')
}
let x =prompt (
function pow(x,n){
	for(i=1; i<n; i++)

✏️ pow(x,n) 함수 만들기

  • x의 n제곱을 반환해주는 함수, pow(x,n)를 만들어보세요. x의 n 제곱은 x를 n번 곱해서 만들 수 있습니다.
  • 프롬프트 대화상자를 띄워 사용자로부터 x와 n을 입력받고 pow(x,n)의 반환 값을 보여주는 코드를 작성해 보세요.
  • 주의사항: n은 1 이상의 자연수이어야 합니다. 이외의 경우엔 자연수를 입력하라는 얼럿 창을 띄워주어야 합니다.

let x = prompt('x를 입력하세요')
let n = prompt('n을 입력하세요')

function pow (x, n) {
  for(i = 1; i < n; i++){
    let result = x*x;
    return result;
  }
}

if ( n < 1 ) {
  alert('자연수를 입력하세요')
} else {
  alert(pow(x,n))
}

💬요즘 수업시간에 하는 코딩테스트의 기초편 같은 느낌이였는데, 이거 하나 푸는 데도 시간이 너무 많이 걸렸다..
큰일났다..ㅠ


📌 함수 표현식

  • 콜백함수
    : 함수의 인수를 함수로 전달했을때,
    : 인수로 전달한 그 함수를 나중에 호출 (called back) 햇 ㅓ콜백

📌 그 밖의 코드 품질에 대한 설명

https://ko.javascript.info/code-quali


📌 객체

: 키(key):값(value) 쌍으로 구성된 프로퍼티(property)를 여러개 넣을 수 있다.

📖 풀어보기

✏️ 다음 각 동작을 한 줄씩, 코드로 작성해보세요.

1.빈 객체 user를 만듭니다.
2.user에 키가 name, 값이 John인 프로퍼티를 추가하세요.
3.user에 키가 surname, 값이 Smith인 프로퍼티를 추가하세요.
4.name의 값을 Pete로 수정해보세요.
5.user에서 프로퍼티 name을 삭제하세요

  const user ={};
  user.name = 'john';
  user.surname = 'Smith';
  user.name ='Pete';
  delete user.name;

✏️ 객체가 비어있는지 확인하기

  • 객체에 프로퍼티가 하나도 없는 경우 true, 그렇지 않은 경우 false를 반환해주는 함수 isEmpty(obj)를 만들어 보세요.
function isEmpth(obj) {
	for ( key in odj ) {
    	retrun false
    }
	return true
}	

✏️ 변하지 않는 객체?

const user = {
  name: "John"
};
// 아래 코드는 에러 없이 실행될까요?
user.name = "Pete";

➡️ const는 변수가 바뀌는 것은 불가능 하지만,
변수에 담긴 내용이 바뀌는 것은 가능하기때문에
코드는 실행된다!!

✏️ 프로퍼티 합계 구하기

  • 모든 팀원의 월급에 대한 정보를 담고 있는 객체가 있다고 해봅시다.
let salaries = {
  John: 100,
  Ann: 160,
  Pete: 130
}
  • 모든 팀원의 월급을 합한 값을 구하고, 그 값을 변수 sum에 저장해주는 코드를 작성해보세요. sum엔 390이 저장되어야겠죠?

주의: salaries가 비어있다면 sum에 0이 저장되어야 합니다.

let sum = 0; 
for (let key in salaries ) {
	sum = sum + salaries[key]
}

✏️ 프로퍼티 값 두 배로 부풀리기

  • 객체 obj의 프로퍼티 값이 숫자인 경우 그 값을 두 배 해주는 함수 multiplyNumeric(obj)을 만들어보세요.

multiplyNumeric은 아무것도 반환하지 않아도 괜찮습니다. 객체 자체를 수정해주기만 하면 됩니다.

힌트) typeof를 사용하면 프로퍼티 값이 숫자인지 확인할 수 있습니다.

예시>

// 함수 호출 전
let menu = {
  width: 200,
  height: 300,
  title: "My menu"
};

multiplyNumeric(menu);

// 함수 호출 후
menu = {
  width: 400,
  height: 600,
  title: "My menu"
};

➡️

function multiplyNmeric(obj){
  for (let key in obj) {
    if (typeof(obj[key]) === 'number'){
      odj[key] = odj[key] * 2;
    }
  } 
}

💬 오늘의 느낀점
한 문단씩 학습하고 밑에 과제를 푸는게 큰 도움이 되는 것 같다.
항상 학습하고 그냥 넘어가면 다른 곳에서 응용이 잘 안됐는데
문제 풀면서 응용하는 법을 배우는 것 같기도 하다.
굉장히 기초적인건데도 문제 풀이하는데에 시간이 걸려서 그동안 무엇을 했나 싶었다..
그치만 다시 봄으로써, 그냥 이렇게 쓰는거니까 쓰는거야 했던 부분들을
좀 더 정확히 왜 인지를 알 수 있게되었다.

profile
성장중인 개발자🫰

0개의 댓글