[TIL] 2020.06.17 TIL-200617

To-Do

  • 자바스크립트 복습
  • 디자인패턴 발표 준비
  • 자바스크립트 과제

TIL

  • 자바스크립트 수업
  • 자바스크립트 진도 복습(Function 중심으로)
  • 자바스크립트 과제

수업 종료후 남아서 자바스크립트 수업 복습 진행. 그중에서 프로토타입의 경우 다시 복습 필요할 것 같다. 디자인패턴 스터디에서 진행한 내용과 교수님 수업 내용을 보충해서 이번주 내에 정리하기.
집에 도착하자 마자 잠들어서 과제 제대로 마무리하지 못했음. 내일 쉬는 시간에 틈틈히 보충하자.

keyword

  • closure : 함수가 종료되더라도 그 함수의 변수값을 유지시키는 것
  • 내장함수 : Timer
  • 프로토타입
  • 전개 연산자
  • Object
  • 자바스크립트 Arrow Function

JavaScript

1. function

// 함수 선언, 호출
function testFunction() {
		alert('call..function');
	}
// 파라미터 1개인 함수
function testFunction2(data) {
  var data = 'hahaha'
  alert('data : ' + data);
}
// 파라미터 2개 이상인 함수
function testFunction3(data1, data2) {
  var data1 = 'Hello!';
  var data2 = 'World!';
  alert('data1 : ' + data1 + 'data2 : ' + data2);
}
// 파라미터로 함수를 인자로 받을 수 있음
function testFunction4(data) {
  alert(testFunction());
}

// 함수 호출
  testFunction();
  testFunction2();
  testFunction3();
  testFunction4();

2. Hoisting

정의

  • 호이스트(Hoist)는 건축/건설이나 화물 운반에 사용되는 장비로 화물 등을 들어올리는 업무를 수행. 즉, 아래에 위치한 것을 위로 끌어올리는 역할을 하는 장비로 ‘들어올리다’라는 의미를 가진다
  • 자바스크립트에서 호이스팅(Hoisting)은 코드에 선언된 변수 및 함수를 코드 상단으로 끌어올리는 것
  • 이는 변수의 범위(Scope)에 따라 다르게 수행될 수 있다. 함수 내에서 선언한 함수 범위(function scope)의 변수는 해당 함수의 최상위로, 함수 밖에서 선언한 전역 범위(global scope)의 전역 변수는 스크립트 단위의 최상위로 끌어올려진다.

예제

  testFunction();

  // 변수 선언 및 할당 이전에 호출 테스트 
  function testFunction() {
  // 선언부만 호이스팅 되어 아무런 값도 할당되어 있지 않다.
    alert("not defined : " + name);	
  }
  //자바스크립트 내부적으로 var name; 과 name ="hahaha"로 선언과 할당을 분리하여 변수 선언부는 함수 상단으로 끌어올려 선언
  var name = "hahaha";		
  // 변수 초기화 이후 값 확인
  alert("defined : " + name);	

실행결과

not defined : undefined     //변수 선언부만 함수 상담으로 끌어올려져 undefind 출력
defined : hahaha          	//초기화된 값으로 호출

3. 내장함수 - Timer

  • setTimeout(함수, ms) : 함수의 실행을 의도적으로 지연
  • clearTimeout(id) : setTimeout 함수 실행을 취소
  • setInterval(함수, ms) : 부여된 시간 간격 이후로 주기적으로 실행
  • clearInterval(id) : setInterval 함수 실행을 취소

4. array와 함수

실습

function func(a,b,c) {
		document.write(`${ a } : ${ b } : ${ c }<br>`);
	}
	
function func01() {
  document.write(arguments[0] + ', ' + arguments[1] + ', ' + arguments[2] + '<br>');
}

function func02() {
  for(let i of arguments){
  document.write(i + ', ')
  }
  document.write('<br>')
}

var arr = [1, 2, 3];

func(1,23,30);
func01(arr);
func02(arr);
func(arr);

실행결과

1 : 23 : 30
1,2,3, undefined, undefined
1,2,3,
1,2,3 : undefined : undefined

댓글남기기