본문 바로가기
Language/JavaScript

[JavaScript] 함수 - 미리 정의된 전역 함수

by jsh5408 2021. 10. 28.

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

- 사용자의 편의를 위해 미리 정의된 전역 함수들

- 어떤 타입의 객체에서도 바로 사용 가능

 

1. eval()
2. isFinite()
3. isNaN()
4. parseFloat()
5. parseInt()

6. encodeURI()
7. encodeURIComponent()
8. decodeURI()
9. decodeURIComponent()
10. escape()
11. unescape()
12. Number()
13. String()

 

 

1. eval()

- 문자열로 표현된 코드 실행

eval("문자열");
const x = 10, y = 20;
const a = eval("x + y");	// 30
const b = eval("y * 3");	// 60
console.log(eval("10 + 20") === eval("30"));	// true

- 보안에 좋지 않으므로 되도록 사용하지 말것

 


2. isFinite()

- 전달된 값이 유한한 수인지 검사

- 숫자가 아니라면 숫자로 변환하여 검사

isFinite(검사할 값);
isFinite(123);		// true
isFinite(true);		// true
isFinite(false);	// true
isFinite(null);		// true
isFinite("123");	// true

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

 


3. isNaN()

- 전달된 값이 NaN 인지 검사

- 숫자가 아니라면 숫자로 변환하여 검사

isNaN(검사할값);
isNaN(123);		// false
isNaN(true);		// false
isNaN(false);		// false
isNaN(null);		// false
isNaN("123");		// false

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

- ES6 부터 Number.isNaN() 메소드의 사용을 권장

=> 값이 Number 이고 NaN 인지 판별하므로 엄격함

 

 

4. parseFloat()

- 문자열을 파싱하여 부동 소수점 수로 반환

parseFloat("문자열");
parseFloat("123");		// 123
parseFloat("123.000");	// 123
parseFloat("123.456");	// 123.456
parseFloat("12 34 56");	// 12
parseFloat("123 초콜릿");	// 123
parseFloat("초콜릿 123");	// NaN

 


5. parseInt()

- 문자열을 파싱하여 정수로 반환

parseInt("문자열");
parseInt("123");	// 123
parseInt("123.000");	// 123
parseInt("123.456");	// 123
parseInt("12 34 56");	// 12
parseInt("123 초콜릿");	// 123
parseInt("초콜릿 123");	// NaN

parseInt("10", 10);     // 10
parseInt("10", 8);      // 8
parseInt("10", 16);     // 16
parseInt("0x10");       // 16

- 두 번째 인수는 진법을 의미

- "0x" 로 시작하면 16 진수로 인식

 

6. encodeURI() 와 7. encodeURIComponent()

- encodeURI() : URI 에서 주소를 표시하는 특수문자를 제외하고 모든 문자를 이스케이프 시퀀스 처리하여 부호화

- encodeURIComponent() : encodeURI() 함수에서 부호화하지 않은 모든 문자까지 포함하여 이스케이프 시퀀스 처리

* URI(Uniform Resource Identifier)

encodeURI(부호화할URI);
encodeURIComponent(부호화할URI);
const uri = "http://google.com/search.php?name=홍길동&city=서울";

const enc1 = encodeURI(uri);
// http://google.com/search.php?name=%ED%99%8D%EA%B8%B8%EB%8F%99&city=%EC%84%9C%EC%9A%B8

const enc2 = encodeURIComponent(uri);
// http%3A%2F%2Fgoogle.com%2Fsearch.php%3Fname%3D%ED%99%8D%EA%B8%B8%EB%8F%99%26city%3D%EC%84%9C%EC%9A%B8

 


8. decodeURI() 와 9. decodeURIComponent()

- decodeURI() : encodeURI() 함수나 다른 방법으로 만들어진 URI 해독

- decodeURIComponent() : encodeURIComponent() 함수나 다른 방법으로 만들어진 URI 컴포넌트 해독

decodeURI(해독할URI);
decodeURIComponent(해독할URI);
const uri = "http://google.com/search.php?name=홍길동&city=서울";

const enc1 = encodeURI(uri);
// http://google.com/search.php?name=%ED%99%8D%EA%B8%B8%EB%8F%99&city=%EC%84%9C%EC%9A%B8

const enc2 = encodeURIComponent(uri);
// http%3A%2F%2Fgoogle.com%2Fsearch.php%3Fname%3D%ED%99%8D%EA%B8%B8%EB%8F%99%26city%3D%EC%84%9C%EC%9A%B8


const dec1 = decodeURI(enc1);
const dec2 = decodeURIComponent(enc2);
// 둘 다 => http://google.com/search.php?name=홍길동&city=서울

 


10. escape() 와 11. unescape()

- escape() : 전달받은 문자열에서 특정 문자들을 16진법 이스케이프 시퀀스 문자로 변환

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

escape("변환할문자열");
unescape("원래대로변환할문자열");
var str = "Hello! World ?#$";

var esc = escape(str);
// Hello%21%09World%20%3F%23%24

var une = unescape(esc);
// Hello! World ?#$

- escape() 함수는 JS 1.5버전부터 지원 X => encodeURI() / encodeURIComponent() 대신 사용

- unescape() 함수는 JS 1.5버전부터 지원 X => decodeURI() / decodeURIComponent() 대신 사용

 


12. 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

 

 

13. 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

 

 

 

 

 

http://tcpschool.com/javascript/js_function_predefinedFunction

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

댓글