함수 와 내장 대상

5857 단어 JavaScript
함수 와 내장 대상
함수.
함수 (방법 이 라 고도 함) 는 특정한 목적 을 달성 하기 위 한 코드 를 분류 하여 코드 를 더욱 조리 있 게 하 는 데 사용 합 니 다.
	//            
	var wide=window.prompt("           !","");
	var high=window.prompt("        !","");
	var area=wide*high/2;
	if (isNaN(area)) {//            
		alert("       "+area);
	} else {
		alert("      !");
	}

만약 에 우리 가 다른 곳 에서 이 기능 을 사용 해 야 한다 면 가장 간단 한 방법 은 Ctrl + C 다음 에 Ctrl + V 입 니 다. 함 수 를 사용 하면 코드 를 절약 할 수 있 습 니 다.
	function calcAngleArea() {
	//  function         ,        ,               
		//            
		var wide=window.prompt("           !","");
		var high=window.prompt("        !","");
		var area=wide*high/2;
		if (isNaN(area)) {
			alert("      !");
		} else {
			alert("       "+area);
		}
	}

그러나 삼각형 면적 을 계산 하 는 함 수 를 쓴 후에 페이지 가 열 렸 을 때 아무 것 도 나타 나 지 않 았 습 니 다. 그것 은 함수 가 '함수 명 ()' 이라는 문 구 를 사용 하여 실행 해 야 하기 때문에 우 리 는 calc AngleArea () 를 한 마디 더 추가 해 야 합 니 다.만약 여러 번 이런 계산 을 하려 면, 몇 번 의 함수 만 호출 하면 된다!(사실, 이러한 형식 을 보 았 습 니 다. 우 리 는 alert (), prompt (), isNaN () 등 도 함수 입 니 다. 시스템 에 내 장 된 함수 입 니 다!)
	//                    calcAngleArea
	calcAngleArea();
	calcAngleArea();
	calcAngleArea();
	//           

물론, 우 리 는 이 함수 가 더욱 잘 사용 되도록 개선 할 수 있다.
	function calcAngleArea(wide,high) {//       ,         ,     “,”  
		var area=wide*high/2;
		if (isNaN(area)) {
			alert("      !");
		} else {
			alert("       "+area);
		}
	}

이렇게 하면 함수 가 신축성 을 가지 기 때문에 사용자 가 prompt 창 에 내용 을 입력 하도록 강요 할 필요 가 없습니다.우 리 는 먼저 함수 가 어떻게 실행 되 는 지 시험 해 보 자.
	calcAngleArea(12,8);//    12 8,       。          

마찬가지 로, 때때로 우 리 는 사용자 에 게 어떤 값 을 입력 하 라 고 하 는 것 도 아니 고, 어떤 값 을 사용자 에 게 지고 싶 지도 않다.그러나 현재 이 삼각형 면적 을 계산 하 는 함 수 는 우리 가 결 과 를 어떻게 처리 하 든 탄창 에서 결 과 를 사용자 에 게 표시 할 뿐이다.이때 함수 반환 값 기능 을 사 용 했 습 니 다:
	//         return               
	function calcAngleArea(wide,high) {
		var area=wide*high/2;
		if (isNaN(area) || !area) {
			return false;
			alert("  ,      return    ,        ,        !");
		} else {
			return area;
		}
	}
	var a=calcAngleArea(23,8);//    ,            a
	if (a) {
		document.write(a);//        ,               a,         alert
	}

이렇게 하면 이 함수 의 기능 은 진정한 무결 점 각 의 삼각형 면적 을 계산 하 는 함수 입 니 다. (보기 에는 간단 하지만) 우 리 는 너비 와 높이 를 입력 한 다음 에 함수 가 이 를 계산 한 후에 결 과 를 되 돌려 줍 니 다. 만약 에 'calc AngleArea (23, 8)' 처럼 함 수 를 호출 하면 되 돌아 오 는 결 과 를 잃 어 버 릴 것 입 니 다. 그래서 우 리 는 하나의 변수 로 결 과 를 저장 합 니 다.
함수 가 가 져 온 역할 영역 문제
함수 내부 에서 설명 하 는 변수 (부분 변수) 는 함수 외부 에서 접근 할 수 없습니다.
	function demo() {
		var a="       !";
	}
	//alert(a);//  ,      a
	demo();//    
	alert(a);//    

그러나 함수 외부 성명 의 변수 (전역 변수) 는 함수 내부 에서 접근 할 수 있 습 니 다.
	function demo() {
	//      ,  function                          ,        
		alert(globalVar);
	}
	//demo();//  ,     globalVar     
	var globalVar="Hello!";
	demo();//  Hello!
	

내 장 된 대상 Math 와 Date
Math 대상 은 우리 에 게 수학 계산 에 사용 되 는 방법 과 상수 들 을 많이 제공 해 주 었 다.
	alert(Math.PI);//  π
	alert(Math.pow(10,3));//  10 3  
	alert(Math.abs(-12));//  -12    
	var num=23.34;
	alert(Math.ceil(num));//      num     
	alert(Math.floor(num));//      num     。
	alert(Math.round(num));//   num      (    )。
	alert(Math.random());//     0   1        。          0   1   (  0,   1)
	alert(Math.max(2,3,4));//              
	alert(Math.min(2,3,1));//              
	alert(Math.sqrt(2));//         
	alert(Math.SQRT2);//  2    
	alert(Math.SQRT1_2);//          

Date 대상 이 타 임 머 신 같 아 요.
	var d = new Date();//Date      
	//Date                1970   1   1      285,616  。 
	alert(d);//        ,              
	//         ,             
	alert(d.getYear());//   ,2000          ,2000               
	alert(d.getFullYear());//       4      
	alert(d.getMonth());//    ,  ,    0     ,  1     0
	alert(d.getDate());//      
	alert(d.getDay());//       ,    0,  1 1....
	alert(d.getHours());//    
	alert(d.getMinutes());//    
	alert(d.getSeconds());//   
	alert(d.getMilliSeconds());//    
	alert(d.getTime());
	//       ,        1970 1 1      Date            
	//        1970 1 1       285616 ,    1970      

우 리 는 그 중에서 시간 값 을 얻 을 수 있 을 뿐만 아니 라 시간 값 도 설정 할 수 있다.
	var d = new Date();
	d.setFullYear(1990);//     1900
	alert(d.getFullYear());//  1900
	alert(d.getTime());//       ,         getTime()   

getXXX 방법 에 대응 하 는 설정 시간의 함 수 는 get 을 set 로 바 꾸 는 것 뿐 입 니 다.
	var d=new Date();
	d.setFullYear(2004);
	d.setMonth(11);//     12 ,      0     
	d.setDate(2);
	d.setHours(6);
	d.setMinutes(12);
	d.setSeconds(12);
	alert(d.getDay());//  2004 12 2    
	//setXXX                         ,       ,        
	d= new Date();
	d.setYear(2003);
	d.setMonth(1);//   0    
	d.setDate(31);//2      31 
	alert(d);//    ,    3 3 

Date 대상 이라는 자동 정정 의 장점 을 활용 하여 사용자 가 입력 한 날짜 가 유효한 지 판단 할 수 있 습 니 다.
	//       
	var year=window.prompt("       !","")*1;
	var month=window.prompt("       !","")*1;
	var date = window.prompt("      !","")*1;
	if (!year || !month || !date) {//NaN         false
		alert("      !");
	} else {
		var timeMachine=new Date();
		timeMachine.setFullYear(year);
		timeMachine.setMonth(month-1);//  ,    0     
		timeMachine.setDate(date);
		var trueYear = timeMachine.getFullYear();
		var trueMonth = timeMachine.getMonth()+1;//  ,    0     
		var trueDate = timeMachine.getDate();
		if (trueYear != year || trueMonth != month || trueDate != date) {
			alert("   !");
		} else {
		alert("                   ,           ,         !");
		}
	}

좋은 웹페이지 즐겨찾기