object() 생성자 사용
var person = new Object(); // person = {}; 상태
person.name = "홍길동";
person.age = 35;
document.write(person+"<br>");
객체 리터럴 활용 방법
var objPerson = {
name : "홍길동",
age : 35,
getAge: function(){
return this.age;
}
}
생성자 함수를 만드는 방법 (붕어빵 틀 만들기)
function Airplane(name, color, speed){
//arguments;
//this; var Airplane(this) = {}
this.color=color;
this.name=name;
this.speed=speed;
this.fly=function(){
return this.speed+" fly!";
};
}
var plane1 = new Airplane("보라매","레드",100);
document.write(plane1.fly());
var circle = new Circle(10);
document.write(circle.getArea()); //반지름 10 넓이는 314.1516 입니다.
function Circle(radius){ this.radius=radius; this.getArea=function(){ return "반지름 "+this.radius+" 넓이는 "+this.radius*this.radius*Math.PI; } }
var 홍길동 = new Grade("홍길동",100,70,80);
document.write(홍길동.getAvg()); // 홍길동의 평균운 76.797 입니다.
document.write(홍길동.getGrade());// 홍길동의 성적운 미 입니다.
function Grade(name,kor,eng,math){ this.name=name; this.kor=kor; this.eng=eng; this.math=math; this.getAvg=function(){ var avg = (this.kor+this.eng+this.math)/3.0; return this.name+"의 평균은 " + avg + "입니다. <br>" }; this.getGrade=function(){ var avg = (this.kor+this.eng+this.math)/3.0; var result = "가"; if(avg>=90){ result = "수"; } else if(avg>=80){ result = "우"; } else if(avg>=70){ result = "미"; } else if(avg>=60){ result = "양"; } else{ result = "가"; } return name + "의 성적은 " + result + "입니다."; } }
설명:1부터 10까지 출력을 하되, 1초마다 증가된 숫자를 하나씩 찍고, 10초후 프로그램 완료를 찍을것
====================================================================
1
2
3
4
5
6
7
8
9
10
프로그램 완료
var intervaild = 1; setInterval(function() { if (intervaild <= 10) { document.write(intervaild + "<br>"); intervaild++; } else { clearInterval(intervaild); } }, 1000); setTimeout(function(){ document.write("프로그램 완료"+"<br>"); clearInterval(intervaild); },10000); // 10초후에 멈춰라
특징 | DOM(Document Object Model) | BOM(Browser Object Model) |
---|---|---|
용도 | HTML 문서를 객체로 표현 | 웹 브라우저를 객체로 표현 |
객체 | HTML 요소, 속성, 이벤트 | 윈도우, 프레임, 문서, 스크립트, 네트워크 |
사용 예 | HTML 문서를 조작, 이벤트를 처리, 스타일을 적용 | 웹 브라우저의 창, 프레임, 문서, 스크립트, 네트워크를 관리 |
자바스크립트
eval은 보안에 취약하므로 쓰면 안된다
private 등을 지원하지 않는다
속성의 추가와 삭제가 자유롭다
in 키워드로 속성의 유무 확인
with로 객체 접근 간소화
함수 문법은 =, 객체 문법은 :
함수에서도 기본적으로 this를 쓸수 있음 =
자바스크립트에서는 함수가 객체이기 때문에
함수가 만들어질때 -> 객체로 만들기 위해서
2가지(this,arguments)를 심어줌
onload는 웹문서가 모두 완료 된 후에 마지막에 실행됨
역사 및 배경지식
ES5(2009)까지 빛을 못보다가 ES6(2015)부터 프론트엔드 활용도📈
인터프리트 언어: 위에서 쭉 해석 (반대는 컴파일언어 = class 생성)
BOM (브라우저창 전체)
아주 유익한 내용이네요!