함수
특별한 목적의 작업을 수행하도록 설계된 독립적인 블록.
필요할 때마다 호출하여 해당 작업을 반복 수행 할 수 있음.
1급 객체의 조건 : Javascript의 함수는 셋 다 충족함
1. 변수나 데이터 구조 안에 담을 수 있어야 함.
2. 파라미터(매개변수)로 전달할 수 있어야 함.
var a = function(b){
b()
}
c(function(){
console.log('js')
})
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) - 사용자가 생성한 객체들로 생성자 함수 또는 객체 리터럴을 통해 사용자가 객체를 정의하고 확장 시킨 객체. 내장객체들이 구성된 이후에 구성됨.