
전역객체란 자바스크립트 내에서 가장 최상위에 위치한 유일한 객체를 의미한다.
window, 서버(Node.js) 측면에서는 global 객체를 의미한다.new 키워드를 통해 객체를 생성할 수 없다.양/음의 무한대를 나타내는 숫자값이다.
console.log(Infinity); // Infinity
console.log(3/0); // Infinity
console.log(-3/0); // -Infinity
console.log(typeof Infinity); // number
숫자가 아님을 나타내는 숫자값이다.
console.log(Number('xyz')); // NaN
console.log(1 * 'string'); // NaN
console.log(typeof NaN); // number
원시타입 undefined를 값으로 갖는다.
var = foo;
console.log(foo); // undefined
console.log(typeof undefined); // undefined
전달받은 인수 x가 정상적인 유한수인지 검사하여 유한수이면 true를 반환하고, 무한수이면 false를 반환한다.
전달받은 인수의 타입이 숫자가 아닌 경우, 숫자로 타입을 변환한 후 검사를 수행한다.
이때 인수가 NaN으로 평가되는 값이라면 false를 반환한다.
isFinite(0); // true
isFinite(2e64); // true
isFinite('10'); // true: '10' -> 10
isFinite(null); // true: null -> 10
isFinite(Infinity); // false
isFinite(NaN); // false
isFinite('Hello'); // false
전달받은 인수 x가 NaN인지 검사하여 그 결과를 불리언 타입으로 반환한다.
전달받은 인수의 타입이 숫자가 아닌 경우 숫자로 타입을 변환한 후 검사를 수행한다.
isNaN(NaN); // true
isNaN(10); // false
isNaN('blabla'); // true: 'blabla' => NaN
isNaN(''); // false: '' => 0
전달받은 문자열 인수 x를 부동 소수점 숫자, 즉 실수로 해석하여 반환한다.
parseFloat('3.14'); // 3.14
parseFloat('10.00'); // 10
// 공백으로 구분된 문자열은 첫 번째 문자열만 변환한다.
parseFloat('34 45 55'); // 34
// 첫 번째 문자를 숫자로 변환할 수 없다면 NaN을 반환한다.
parseFloat('He was 30'); // NaN
// 앞 뒤 공백은 무시된다.
parseFloat(' 30 '); // 30
전달받은 문자열 인수 x를 정수로 해석하여 반환하며 반환값은 10진수이다. 두 번째 인수로 진법을 나타내는 기수 y를 전달할 수 있다.
parseInt('10'); // 10
parseInt('10.23'); // 10
// 전달받은 인수가 문자열이 아니면 문자열로 변환한 다음 정수로 해석한다.
parseInt(10); // 10
parseInt(10.23); // 10
parseInt('10', 2); // 2
parseInt('10', 8); // 8
parseInt('10', 16); // 16
encodeURI()는 URI 값 x를 인코딩, decodeURI()는 디코딩한다.
const uri = 'https://example.com?name=성우';
const incode = encodeURI(uri);
const decode = decodeURI(incode);
console.log(incode); // https://example.com?name=%EC%84%B1%EC%9A%B0
console.log(decode); // https://example.com?name=성우
encodeURICompnent()는 URI 값 x의 구성요소를 인코딩, decodeURICompnent(x)는 디코딩한다. encodeURI(), decodeURI() 와 달리 쿼리 스트링 구분자로 사용되는 =, ?, &, / 까지 인/디코딩 한다.
const uri = 'https://example.com?name=성우';
const incode = encodeURIComponent(uri);
const decode = decodeURIComponent(incode);
console.log(incode); // https%3A%2F%2Fexample.com%3Fname%3D%EC%84%B1%EC%9A%B0
console.log(decode); // https://example.com?name=성우
사용자에게 중요한 내용이나 경고창을 띄워준다.
alert('환영합니다.')
사용자에게 입력값을 받을 수 있는 창을 띄워준다. 입력 받은 값을 문자열로 반환하며 입력 값이 없을 경우 Null을 반환한다.
const input = prompt('나이를 입력해주세요 : ');
console.log(typeof input); // string
console.log(input); // 26
사용자에게 true('확인') / false('취소') 값을 리턴받을 수 있는 팝업창을 띄워준다.
const result = confirm('결제를 진행하시겠습니까?');
if (result) {
console.log('정상적으로 결제되었습니다.');
} else {
console.log('결제가 취소되었습니다.');
}