본문 바로가기

자바 웹 개발자가 될거야/JSP

[JavaScript] 구구단 가로 출력 / 별그리기 / 함수 / 내장함수 / 재귀함수 / 전역변수 지역변수 / 객체 / Object / Date / getFullYear() / getMonth() / getDate() / getDay()

 

 

 

 

- 구구단 가로로 출력하기

 

for(var i=0;i<=9;i++) {
	for(var dan=2;dan<=9;dan++){
		if(i==0){
			document.write("[ "+dan+"단 ] &nbsp;");
		}else{
			document.write(dan+"*"+i+" = "+(dan*i)+"&nbsp;");			
		}
	}
			
	document.write("<br>");
}

 

 

→ 모양은 이상하지만 가로로 일단 출력

 

 

- 연습1) 반복문 사용해서 테이블 구현하기

 

 

var tag = "<table border='1'>";
	for(var r=1;r<=2;r++){
		tag+= "<tr>";
		for(var d=1;d<=3;d++){
			tag += "<td>("+r+","+d+")</td>";	
		}
		tag+="</tr>";
	}
	tag += "</table>";
	
document.write(tag);

 

 

 

- 연습2) 반복문으로 별그리기

 

for(var i=1;i<=5;i++){
	for(var j=1;j<=i;j++){
		document.write("*");
		if(i==j){
			document.write("<br>");
		}
	}
}
////////////////////////////////////////////////////////////////

for(var row=1;row<=5;row++){
	for(var col=1;col<row;col++){
		document.write("*");
	}
	document.write(" * <br>");
}

동일결과

 

 

< 함수 >

 

① 함수의 선언

 

- function 함수명 ( ) {

              실행문1;

              실행문2;

              실행문3;

  }

 

- 예 ) document.write(), alert(), prompt(), 

 

- 익명함수의 선언

  · 참조변수 = function( ) {

                            실행문1;

                            실행문2;

                           }

 

 

② 함수의 사용

 

- 함수명 ( ) ;

 

- 익명함수의 사용

  · 참조변수 ( ) ;

 

function Hello(){
	for(var i=1;i<=5;i++){
		document.write("안녕하세요! <br>");
	}
}
	
Hello();

함수호출 결과

 

var BYE = function(){
	document.write("GOODBYE <br>");
	document.write("GOODBYE <br>");
}
	
BYE();

 

익명함수 호출 결과

 

 

③ 매개변수

 

- 함수의 특정 정보를 전달하는 변수

 

- function 함수명( 매개변수1, 매개변수2, ... , 매개변수n ) {

  }

 

  함수명 (데이터1, 데이터2, .... , 데이터n) ;

 

 

function ShowNyInfo(name, age, tel){
	document.write("이름은 "+name+"입니다. <br>");
	document.write("나이는 "+age+"입니다. <br>");
	document.write("번호는 "+tel+"입니다. <br>");
}
	
ShowNyInfo("홍길동", "22", "010-123-4567");

 

매개변수 사용한 함수 호출

 

④ return

 

- 함수의 선언

  · function 함수명() {

        실행코드;

        return 데이터;
     }

 

- 함수의 사용

  · 변수 = 함수명();

 

 

function myFunction(num1, num2){
	var sum = num1 + num2;
	return sum;
}

var result = myFunction(1000,500);
document.write("숫자의 합 : "+result);
document.write("숫자의 합 : "+myFunction(500,500));

리턴문 사용 후 결과

 

 

- 연습1 )로그인 처리 로직

 

function ItwillLoginCheck(id, pw){
	var userID="admin";
	var userPW="1234";
		
	if(id==userID){
		if(pw==userPW){
			alert(id+"로그인 성공 !");
		}else {
			alert("비밀번호 오류 !");
		}
	}else{
		alert("비회원 입니다!");
	}				
}
	
ItwillLoginCheck("admin","1234");

 

 

 

- 연습2) 절대값 만들기

 

 

function myABS(num){
	if(num<0){
		return num*(-1);
	}else{
		return num;
	}
}
	
document.write(myABS(-2)+"<br>");
var tmp = myABS(200);
document.write(tmp+"<br>");

/////////////////////////////////////////////

if(num<0) {
	num = num * -1;
}

return num;

/////////////////////////////////////////////

return (num<0)? -num : num;

 

 

- 함수안에 있는 return문
· 함수는 안에 들어있는 모든 코드를 실행하면 끝

· 함수안에 return문이 있는 경우 실행 후 끝 (리턴문 이후의 코드 실행 X)

- 함수( ){
    return 데이터;  → 값을 리턴
   }

- 함수( ){
     return;  → 함수의 종료
   }

 

 

 

 

< 내장함수 >

 

- 자바스크립트 엔진에 포함되어있는 함수

- 함수의 선언(정의)없이 함수의 호출만으로 사용가능

 

① 재귀함수

 

- 자기 자신의 함수 호출

 

var num=0;
function testFnc(){
	num++;
	document.write(num+"<br>");
		
	if(num == 10){
		return; // 종료
	}		
	testFnc();
} //함수 끝

testFnc();  // 함수 호출

 

재귀함수

 

< 전역변수 & 지역변수 >

 

- 전역변수 : 프로그램 전 영역에서 사용가능 / 코드 생성시 변수 생성

  · var 변수 ;

     function 함수 ( ) {

           변수=값;

    }

 

- 지역변수 : 특정지역에서만 사용가능 / 함수 생성시 변수 생성

  · function 함수 ( ) {

         var 변수=값;

    }

 

var num=500;
function myFnc(){
	var num=300;
	document.write(num);   // 결과 : 300 (지역변수)
}
	
myFnc();
	
document.write(num);     // 결과 : 500 (전역변수)

 

 

 

< 객체 >

 

- 눈 앞에 보이는 대상들

- 코드로 표현할 수 있도록 기능과 속성을 정의 → 객체 모델링/추상화

 

- 자바스크립트에서 사용되는 객체

  · 내장 객체 : 필요에 따라서 생성해서 사용가능 ( String, Date, Math, Array )

  · 브라우저 객체 모델 (BOM) : 브라우저를 객체로 표현해서 사용가능한 객체 ( Window, screen, location, navigator, ...) 

  · 문서 객체 모델 (DOM) : HTML문서를 표현한 객체

 

 

① Object

 

- 객체 생성

  · var 객체명 = new Object( );

  · new 연산자 : 객체를 생성하는 연산자, 객체를 메모리에 올린다.(인스턴스화)

 

 

- TV 전원 껐다 켰다 하기

 

var SamSungTV = new Object();

SamSungTV.power = false;
	
function pushPower(){
	if(SamSungTV.power){ // 켜짐
		SamSungTV.power = !SamSungTV.power;
	}else{ // 꺼짐
		SamSungTV.power = !SamSungTV.power;
	}
}
	
document.write("전원: "+((SamSungTV.power)? "켜짐":"꺼짐<br>"));
	
pushPower();
	
document.write("전원: "+((SamSungTV.power)? "켜짐":"꺼짐<br>"));

 

 

 

 

 

 

② Date

 

- 내장객체 - 날짜 정보객체 (Date)

- 날짜 정보 저장객체 생성 - 시스템의 시간정보를 가져와서 사용

 

 

var t1 = new Date(); // 현재 시간정보
document.write(t1);
	

var t2 = new Date(2021,10,28);	// 연, 월-1, 일 // 0월 ~ 11월
document.write(t2);

var t3 = new Date(2021,9,28,17,09,00);	// 연, 월-1, 일, 시, 분, 초
document.write(t3);

var t4=new Date("2021/10/28"); // 연 월 일
document.write(t4);

 

∴  0월→ 1월이고 11월 → 12월

 

 

 

 

document.write(t1.getFullYear()+"년");
document.write((t1.getMonth+1)+"월");
document.write(t1.getDate()+"일");

· .getDay() : 요일 정보 가져옴 // 0(일요일) , 1(월요일), 2(화요일), ..., 6(토요일)