..

Search

26) 미리 정의된 전역 함수

26) 미리 정의된 전역 함수

미리 정의된 전역 함수


미리 정의된 전역 함수(predefined functions)

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

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

 

자바스크립트에서 미리 정의되어 있는 전역 함수는 다음과 같습니다.

 

1. eval()

2. isFinite()

3. isNaN()

4. parseFloat()

5. parseInt()

6. decodeURI()

7. decodeURIComponent()

8. encodeURI()

9. encodeURIComponent()

10. escape()

11. unescape()

12. Number()

13. String()


eval()

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

문법

eval("문자열");

 

예제

var x = 10, y = 20;

var a = eval("x + y"); // 30

var b = eval("y * 3"); // 60

document.write(a + "<br>" + b);

코딩연습 ▶


isFinite()

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

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

문법

isFinite(검사할값);

 

예제

isFinite(123);       // true

isFinite(123e100);   // true

isFinite(0);         // true

isFinite(true);      // true

isFinite(false);     // true

isFinite(null);      // true

isFinite("123");     // true

isFinite("");        // true

 

isFinite("문자열");  // false

isFinite(undefined); // false

isFinite(NaN);       // false

코딩연습 ▶


isNaN()

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

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

 

전달된 값이 숫자인지 아닌지를 확인하기 위하여 typeof 연산자를 대신 사용할 수도 있습니다.

문법

isNaN(검사할값);

 

예제

isNaN(123);       // false

isNaN(123e100);   // false

isNaN(0);         // false

isNaN(true);      // false

isNaN(false);     // false

isNaN(null);      // false

isNaN("123");     // false

isNaN("");        // false

 

isNaN("문자열");  // true

isNaN(undefined); // true

isNaN(NaN);       // true

코딩연습 ▶

 

이 함수는 숫자로의 강제 변환에 따라 예상치 못한 결과를 얻을 수 있으므로 ECMAScript 6부터는 Number.isNaN() 메소드의 사용을 권장하고 있습니다.

parseFloat()

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

문법

parseFloat("문자열");

 

예제

parseFloat("123");        // 123

parseFloat("123.000");    // 123

parseFloat("123.456");    // 123.456

parseFloat("12 34 56");   // 12

parseFloat(" 123 ");      // 123

parseFloat("123 초콜릿"); // 123

parseFloat("초콜릿 123"); // NaN

코딩연습 ▶


parseInt()

parseInt() 함수는 문자열을 파싱하여 정수로 반환합니다.

문법

parseInt("문자열");

 

예제

parseInt("123");        // 123

parseInt("123.000");    // 123

parseInt("123.456");    // 123

parseInt("12 34 56");   // 12

parseInt(" 123 ");      // 123

parseInt("123 초콜릿"); // 123

parseInt("초콜릿 123"); // NaN

 

parseInt("10", 10);     // 10

parseInt("10", 8);      // 8

parseInt("10", 16);     // 16

parseInt("0x10");       // 16

코딩연습 ▶

 

위의 예제처럼 parseInt() 함수에 두 번째 인수로 특정 진법을 전달하면, 해당 진법에 맞는 정수로 반환합니다.

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

 

지금까지 parseInt() 함수는 전달받은 문자열의 시작이 "0"로 시작하면, 해당 문자열을 8진수로 인식했습니다.
하지만 자바스크립트는 더 이상 이 문법을 지원하지 않습니다.

encodeURI()와 encodeURIComponent()

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

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

문법

encodeURI(부호화할URI);

encodeURIComponent(부호화할URI);

 

예제

var uri = "http://google.com/search.php?name=홍길동&city=서울";

 

var enc1 = encodeURI(uri);

var enc2 = encodeURIComponent(uri);

document.write(enc1 + "<br>" + enc2);

코딩연습 ▶


decodeURI()와 decodeURIComponent()

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

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

문법

decodeURI(해독할URI);

decodeURIComponent(해독할URI);

 

예제

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);

코딩연습 ▶


escape()와 unescape()

escape() 함수는 전달받은 문자열에서 특정 문자들을 16진법 이스케이프 시퀀스 문자로 변환합니다.

unescape() 함수는 전달받은 문자열에서 escape() 함수나 다른 방법으로 만들어진 16진법 이스케이프 시퀀스 문자를 원래의 문자로 변환합니다.

문법

escape("변환할문자열");

unescape("원래대로변환할문자열");

 

예제

var str = "Hello! World ?#$";

 

var esc = escape(str);

var une = unescape(esc);

document.write(esc + "<br>" + une);

코딩연습 ▶

 

escape() 함수는 자바스크립트 1.5버전부터 더는 지원하지 않으므로, encodeURI() 함수나
encodeURIComponent() 함수를 대신 사용해야 합니다.
unescape() 함수는 자바스크립트 1.5버전부터 더는 지원하지 않으므로, decodeURI() 함수나
decodeURIComponent() 함수를 대신 사용해야 합니다.

Number()

Number() 함수는 전달받은 객체의 값을 숫자로 반환합니다.

문법

Number(객체);

 

예제

Number("123");        // 123

Number("123.000");    // 123

Number("123.456");    // 123.456

Number("12 34 56");   // NaN

Number("123 초콜릿"); // NaN

 

Number(true);         // 1

Number(false);        // 0

Number(new Date());   // 현재 날짜에 해당하는 숫자를 반환함.

Number(null);         // 0

코딩연습 ▶


String()

String() 함수는 전달받은 객체의 값을 문자열로 반환합니다.

문법

String(객체);

 

예제

String(123);        // 123

String(123.456);    // 123.456

String("123");      // 123

String(new Date()); // 현재 날짜에 해당하는 문자열을 반환함.

String(null);       // null

 

String(true);       // true

String(false);      // false

String(Boolean(1)); // true

String(Boolean(0)); // false

코딩연습 ▶


연습문제