3 분 소요

2022. 05. 19. 수업내용 정리 #2/2

미리 정의된 전역 함수


  • 미리 정의된 전역함수

    사용자의 편의를 위해 다양한 기능의 여러 전역 함수를 미리 정의하여 제공합니다.

    이러한 전역 함수는 자바스크립트의 어떤 타입의 객체에서도 바로 사용할 수 있습니다.


    자바스크립트에서 미리 정의된 전역함수는 아래와 같습니다.


    1. eval()

    2. isFinite()

    3. isNaN()

    4. parseFloat()

    5. parseInt()

    6. decodeURI()

    7. decodeURIComponent()

    8. encodeURI()

    9. encodeURIComponent()
    10. Number()
    11. String()

    • eval()

      문자열로 표현된 자바스크립트 코드를 실행하는 함수입니다.

      문법
      eval("문자열");
      
      <!DOCTYPE html>
      <html lang="ko">
          
      <head>
      	<meta charset="UTF-8">
      	<title>JavaScript Predefined Function</title>
      </head>
          
      <body>
          
      	<h1>eval() 함수</h1>
          
      	<script>
      		var x = 10, y = 20;
      		var a = eval("x + y");
      		var b = eval("y * 3");
      		document.write(a + "<br>" + b);
      	</script>
          	
      </body>
          
      </html>
      

      웹페이지 화면 ▼

      미리정의된전역함수예시1



    • isFinite()

      함수는 전달된 값이 유한한 수인지를 검사하여 그 결과를 반환합니다.

      만약 인수로 전달된 값이 숫자가 아니라면, 숫자로 변환하여 검사합니다.

      문법
      isFinite(검사할값);
      
      <!DOCTYPE html>
      <html lang="ko">
          
      <head>
      	<meta charset="UTF-8">
      	<title>JavaScript Predefined Function</title>
      </head>
          
      <body>
          
      	<h1>isFinite() 함수</h1>
          
      	<script>
      		document.write(isFinite(123) + "<br>");
      		document.write(isFinite(123e100) + "<br>");
      		document.write(isFinite(0) + "<br>");
      		document.write(isFinite(true) + "<br>");
      		document.write(isFinite(false) + "<br>");
      		document.write(isFinite(null) + "<br>");
      		document.write(isFinite("123") + "<br>");
      		document.write(isFinite("") + "<br>");
      		document.write(isFinite("문자열") + "<br>");
      		document.write(isFinite(undefined) + "<br>");
      		document.write(isFinite(NaN));
      	</script>
          	
      </body>
          
      </html>
      

      웹페이지 화면 ▼

      미리정의된전역함수예시2



    • isNaN()

      전달된 값이 NaN인지를 검사하여 그 결과를 반환합니다.

      만약 인수로 전달된 값이 숫자가 아니라면, 숫자로 강제 변환하여 검사합니다.


      전달된 값이 숫자인지 여부확인을 위해 typeof 연산자를 대용할 수도 있습니다.

      문법
      isNaN(검사할값);
      
      <!DOCTYPE html>
      <html lang="ko">
          
      <head>
      	<meta charset="UTF-8">
      	<title>JavaScript Predefined Function</title>
      </head>
          
      <body>
          
      	<h1>isNaN() 함수</h1>
          
      	<script>
      		document.write(isNaN(123) + "<br>");
      		document.write(isNaN(123e100) + "<br>");
      		document.write(isNaN(0) + "<br>");
      		document.write(isNaN(true) + "<br>");
      		document.write(isNaN(false) + "<br>");
      		document.write(isNaN(null) + "<br>");
      		document.write(isNaN("123") + "<br>");
      		document.write(isNaN("") + "<br>");
      		document.write(isNaN("문자열") + "<br>");
      		document.write(isNaN(undefined) + "<br>");
      		document.write(isNaN(NaN));
      	</script>
          	
      </body>
          
      </html>
      

      웹페이지 화면 ▼

      미리정의된전역함수예시3


      ★ 숫자로의 강제 변환에 따라 예상치 못한 결과를 얻을 수 있으므로 ECMAScript6 부터는 Number.isNaN() 메소드의 사용이 권장됨.



    • parseFloat()

      문자열을 파싱하여 부동 소수점 수 (floating point number)로 반환합니다.

      문법
      parseFloat("문자열");
      
      <!DOCTYPE html>
      <html lang="ko">
          
      <head>
      	<meta charset="UTF-8">
      	<title>JavaScript Predefined Function</title>
      </head>
          
      <body>
          
      	<h1>parseFloat() 함수</h1>
          
      	<script>
      		document.write(parseFloat("123") + "<br>");
      		document.write(parseFloat("123.000") + "<br>");
      		document.write(parseFloat("123.456") + "<br>");
      		document.write(parseFloat("12 34 56") + "<br>");
      		document.write(parseFloat("  123  ") + "<br>");
      		document.write(parseFloat("123 초콜릿") + "<br>");
      		document.write(parseFloat("초콜릿 123"));
      	</script>
          	
      </body>
          
      </html>
      

      웹페이지 화면 ▼

      미리정의된전역함수예시4



    • parseInt()

      문자열을 파싱하여 정수로 반환합니다.

      문법
      parseInt("문자열");
      
      <!DOCTYPE html>
      <html lang="ko">
          
      <head>
      	<meta charset="UTF-8">
      	<title>JavaScript Predefined Function</title>
      </head>
          
      <body>
          
      	<h1>parseInt() 함수</h1>
          
      	<script>
      		document.write(parseInt("123") + "<br>");
      		document.write(parseInt("123.000") + "<br>");
      		document.write(parseInt("123.456") + "<br>");
      		document.write(parseInt("12 34 56") + "<br>");
      		document.write(parseInt("  123  ") + "<br>");
      		document.write(parseInt("123 초콜릿") + "<br>");
      		document.write(parseInt("초콜릿 123") + "<br><br>");
          
      		document.write(parseInt("10", 10) + "<br>");
      		document.write(parseInt("10", 8) + "<br>");
      		document.write(parseInt("10", 16) + "<br>");
      		document.write(parseInt("0x10"));
      	</script>
          	
      </body>
          
      </html>
      

      웹페이지 화면 ▼

      미리정의된전역함수예시5


      함수에 두 번째 인수로 특정 진법을 전단하며, 해당 진법에 맞는 정수로 반환합니다.

      또한, 전달받은 문자열의 시작이 ‘0x’로 시작하면, parseInt() 함수는 해당 문자열을 16진수로 인식합니다.

    • encodeURL() 와 encodeURLComponent()

      encodeURL() 함수는 URL에서 주소를 표시하는 특수문자를 제외하고, 모든 문자를 이스케이프 시퀀스(escape sequence) 처리하여 부호화합니다.

      하지만 encodeURLComponent() 함수는 URL에서 encodeURL() 함수에서 부호화하지 않는 모든 문자까지 포함하여 이스케이프 시퀀스 처리합니다.

      문법
      encodeURI(부호화할URI);
      encodeURIComponent(부호화할URI);
      
      <!DOCTYPE html>
      <html lang="ko">
          
      <head>
      	<meta charset="UTF-8">
      	<title>JavaScript Predefined Function</title>
      </head>
          
      <body>
          
      	<h1>encodeURI()와 encodeURIComponent() 함수</h1>
          
      	<script>
      		var uri = "http://google.com/search.php?name=홍길동&city=서울";
      		var enc1 = encodeURI(uri);
      		var enc2 = encodeURIComponent(uri);
      		document.write(enc1 + "<br>" + enc2);
      	</script>
          	
      </body>
          
      </html>
      

      웹페이지 화면 ▼

      미리정의된전역함수예시6



    • decodeURL() 와 decodeURLComponent()

      decodeURL() 함수는 encodeURL() 함수나 다른 방법으로 만들어진 URI(Uniform Resource identifier)를 해독합니다.

      decodeURLComponent() 함수는 encodeURLComponent() 함수나 다른 방법으로 만들어진 URI 컴포넌트를 해독합니다.

      문법
      decodeURI(해독할URI);
      decodeURIComponent(해독할URI);
      
      <!DOCTYPE html>
      <html lang="ko">
          
      <head>
      	<meta charset="UTF-8">
      	<title>JavaScript Predefined Function</title>
      </head>
          
      <body>
          
      	<h1>decodeURI()와 decodeURIComponent() 함수</h1>
          
      	<script>
      		var uri = "http://google.com/search.php?name=홍길동&city=서울";
      		var enc1 = encodeURI(uri);
      		var enc2 = encodeURIComponent(uri);
      		document.write(enc1 + "<br>" + enc2 + "<br><br>");
          
      		var dec1 = decodeURI(enc1);
      		var dec2 = decodeURIComponent(enc2);
      		document.write(dec1 + "<br>" + dec2);
      	</script>
          	
      </body>
          
      </html>
      

      웹페이지 화면 ▼

      미리정의된전역함수예시7



    • Number()

      전달받은 객체의 값을 숫자로 반환합니다.

      문법
      Number(객체);
      
      <!DOCTYPE html>
      <html lang="ko">
          
      <head>
      	<meta charset="UTF-8">
      	<title>JavaScript Predefined Function</title>
      </head>
          
      <body>
          
      	<h1>Number() 함수</h1>
          
      	<script>
      		document.write(Number("123") + "<br>");
      		document.write(Number("123.000") + "<br>");
      		document.write(Number("123.456") + "<br>");
      		document.write(Number("12 34 56") + "<br>");
      		document.write(Number("123 초콜릿") + "<br><br>");
          		
      		document.write(Number(true) + "<br>");
      		document.write(Number(false) + "<br>");
      		document.write(Number(new Date()) + "<br>");
      		document.write(Number(null));
      	</script>
          	
      </body>
          
      </html>
      

      웹페이지 화면 ▼

      미리정의된전역함수예시8



    • String()

      전달받은 객체의 값을 문자열로 반환합니다.

      문법
      String(객체);
      
      <!DOCTYPE html>
      <html lang="ko">
          
      <head>
      	<meta charset="UTF-8">
      	<title>JavaScript Predefined Function</title>
      </head>
          
      <body>
          
      	<h1>String() 함수</h1>
          
      	<script>
      		document.write(String(123) + "<br>");
      		document.write(String(123.456) + "<br>");
      		document.write(String("123") + "<br>");
      		document.write(String(new Date()) + "<br>");
      		document.write(String(null) + "<br><br>");
          
      		document.write(String(true) + "<br>");
      		document.write(String(false) + "<br>");
      		document.write(String(Boolean(1)) + "<br>");
      		document.write(String(Boolean(0)));
      	</script>
          	
      </body>
          
      </html>
      

      웹페이지 화면 ▼

      미리정의된전역함수예시9

댓글남기기