Dev log - 18, JavaScript #5

박강산·2022년 4월 11일
0

자바스크립트 관련

  • let 객체명 = new Object();let 객체명 = {} 형식으로 대체 가능

  • 배열명 = { 명칭 = '내용', 명칭 '내용' } 형식으로 배열의 명칭을 정할 수 있음 (객체타입)

  • 공부하기 (0405 예제5, 0411 예제7)

math. 
floor() - 버림으로 처리
ceil() - 올림으로 처리
round() - 반올림으로 처리

for of, for in

for of

  • for( let items of 배열명) { 문법 + items } 형식으로 배열 객체들을 차례대로 가져올 수 있음 (위의 객체 타입 형태는 사용 불가능)

  • for( let [객체명1, 객체명2] of Object.entries(배열명) ) { console.log('for of 구문으로 출력하기: key:'+객체명1+',value:'+객체명2); } 형식으로 객체 타입 형태 사용 가능

for in

  • for( let items in 배열명) ( 문법 + items ) 형식으로 객체 타입 배열들의 명칭을 불러올 수 있음

  • for( let items in 배열명) ( 문법 + obj[items] ) 형식으로 객체 타입 배열들의 값을 불러올 수 있음

Map()

삼항조건식

이벤트 리스너

함수타입
1. 선언적 함수

  • HTML 문서에 onclic="함수명" 속성을 사용하여 호출하는 방법
  • JS에 document.getElementById('btn').addEventListener('click',함수명) 속성을 사용하여 호출하는 방법

    addEventListener(a,b,c)
    a매개변수: string 타입 이벤트명,
    b매개변수: function 타입 값,
    c매개변수: boolean 타입 입력 즉, true or false
    default : false ( 버블링 ), true ( 캡쳐링 )

  1. 익명함수

    document.getElementById('btn').addEventListener('click',function(){
    document.getElementById('box').innerHTML = '익명함수 타입' })

형식으로 사용

  1. 실습
let outPutText = ''

function getText() {
  if (outPutText == '') {
    outPutText += document.getElementById('fname').value;
  }  else {
    outPutText += '<br>'+document.getElementById('fname').value;
  }
  document.getElementById('textarea').innerHTML = outPutText;
}

document.getElementById('btn').addEventListener('click', getText);

-> 밑에 이벤트 실행문 대신, HTML 문서에 onclick="getText()" 속성 사용 가능

  • .style 속성을 뒤에 붙이면, 사용할 수 있는 style 속성들을 알 수 있음
  • 객체명.스타일속성 = '값' 형식으로 사용할 수 있음

테이블 출력 실습

  • document.innerHTML 속성을 이용하여 출력
window.onload = function() {
  let name = ['홍길동', '박길동', '김길동', '이길동', '최길동'];
  let age = [30,18,21,35,38];
  let height = [175,180,190,185,178];
  let score = [85,88,90,95,95];

  // 평균 구하는 함수
  function avgFunc(arrayNum) {
    let total = 0;
    let scoreLeng = arrayNum.length;
    let scoreAvg;
    for (let i = 0; i < scoreLeng; i++) {
      total += arrayNum[i];
    }
    scoreAvg = total/scoreLeng
    return scoreAvg = Math.ceil(scoreAvg);
  }
  console.log(`나이 평균: ${avgFunc(age)}, 키 평균: ${avgFunc(height)}, 점수 평균: ${avgFunc(score)}`);
  // document에 text 출력
  let list = `<table>`;
  list += '<tr><th>이름</th><th>나이</th><th></th><th>점수</th></tr>'
  for (let i = 0; i < name.length; i++) {
    list += '<tr><td>'+name[i]+'</td><td>'+age[i]+'</td><td>'+height[i]+'</td><td>'+score[i]+'</td></tr>'
  }
  list += '<tr><th>평균</th><th>'+avgFunc(age)+'</th><th>'+avgFunc(height)+'</th><th>'+avgFunc(score)+'</th></tr>'
  list += `</table>`

  console.log(list);
  document.getElementById('table-wrap').innerHTML = list;
}

-> 함수 호출 방식은 Classtag 를 호출하는 방식도 있음
-태그-

	let domDiv = document.getElementsByTagName('div')[0]
	domDiv.innerHTML = list;
	console.log(domDiv);

-class- (버튼 클릭 호출 방식)

    let domTable = document.getElementsByClassName('table-wrap')[0];
    function getTable() {
    domTable.innerHTML = list;
    }
    document.getElementById('get-info').addEventListener('click',getTable)

arrow function

즉시 실행 함수(IIFE)

profile
안녕하세요. 맡은 업무를 확실하게 수행하는 웹 개발자가 되기 위하여 끊임없이 학습에 정진하겠습니다.

0개의 댓글

관련 채용 정보