220128 Javascript

조영혜·2022년 1월 28일
0

함수

특별한 목적의 작업을 수행하도록 설계된 독립적인 블록.
필요할 때마다 호출하여 해당 작업을 반복 수행 할 수 있음.

  • 1급객체 (first class citizen)
    : 자바스크립트의 함수는 값과 동일하게 취급. 함수를 객체취급.
    값처럼 변수에 할당할 수 있으며 속성 값이 될 수 있으며 배열의 요소가 될 수도 있음.

1급 객체의 조건 : Javascript의 함수는 셋 다 충족함
1. 변수나 데이터 구조 안에 담을 수 있어야 함.
2. 파라미터(매개변수)로 전달할 수 있어야 함.

var a = function(b){
  b()
}

c(function(){
  console.log('js')
 }) 
  1. 리턴 값으로 사용할 수 있어야 함.

FUNCTION : 특정작업을 수행하는 코드 조각
METHOD : 객체의 속성 값으로 담겨진 함수를 부르는 명칭. 클래스 및 객체와 연관되어 있는 함수. 메소드는 함수에 포함되어 있음.

호이스팅 (hoisting): 물건을 끌어 올리다.
익명함수 선언 방식에선 호이스팅 XXX

a()

function a(){
  console.log('helle')
}

=> hello
//첫 줄에서 함수 a 먼저 선언하고, 아래에서 함수 a를 정의해도 콘솔에 올바르게 출력됨. => hoisting

Q. 이모지와 줄 수를 입력하면 두 값을 파라미터로 받아 피라미드 모양으로 출력해주는 pyramid()함수를 작성하시오.

//1. 입력받아야 하니까 prompt
//2. 함수 pyramid() 선언, 호출 
//3. 피라미드 모양 출력 => 이중포문 
//4. 화면에 출력할 거니까 document.write

let row = Number(prompt("줄 수를 입력하세요.")); 
let emo = prompt("이모지를 입력하세요."); 

pyramin(row, emo); 

function pyramid(row, emo);
for(let i = 1; i<=row; i++){
  // 한줄당 이모지를 몇개씩 출력할건지, 
  for (let j = 1; i<=j; j++){
    document.write(emo); 
  }
  document.wirte("<br>"); 
}

객체

여러 속성을 하나의 변수에 저장할 수 있도록 해주는 타입.
key/value pair을 저장할 수 있는 구조.

객체 = 속성(property) + 메소드(method)
property : 객체의 상태를 나타내는 값
method : 프로퍼티를 참조하고 조작할 수 있는 동작.

  • 내장객체 (Built-in Object) - Javascript엔진이 구동되는 시점에 바로 제공. 어디에서든 사용 가능.

  • 브라우저 내장객체 (Native Object) - Javascript엔진이 구동되는 시점에 바로 제공 브라우저마다 구성을 달리 하는 경우가 있어 내장객체와 분류, Javascript엔진을 구동할 때 build되는 객체들. EX.BOM(브라우저 객체모델), DOM(문서객체모델)

  • 사용자 정의 객체 (Host Object) - 사용자가 생성한 객체들로 생성자 함수 또는 객체 리터럴을 통해 사용자가 객체를 정의하고 확장 시킨 객체. 내장객체들이 구성된 이후에 구성됨.

0개의 댓글