본문 바로가기
정리_창고

JavaScript - Global Methods 사전식 정리

by SKim입니다 2020. 7. 8.

JavaScript 총정리 - 목차로 바로가기

 

decodeURI()


decodeURIComponent()


encodeURI()


encodeURIComponent()


escape()


eval()  eval(string)

문자열을 evaluate하고 마치 그것이 스크립트 코드인 것처럼 실행시킨다.

더보기

string - 자바스크립트 표현식/변수/statement/연속적인 statement들

 

* 만약 인자(string)가 표현식이라면, 그 표현식을 evaluate한다.

* 만약 인자(string)가 하나 또는 그 이상의 자바스크립트 statement라면, 그 statement를 실행시킨다. 

 

console.log(eval('2 + 2'));
// expected output: 4

console.log(eval(new String('2 + 2')));
// expected output: 2 + 2

console.log(eval('2 + 2') === eval('4'));
// expected output: true

console.log(eval('2 + 2') === eval(new String('2 + 2')));
// expected output: false


var x = 10;
var y = 20;
var a = eval("x * y") + "<br>";
var b = eval("2 + 2") + "<br>";
var c = eval("x + 17") + "<br>";

var res = a + b + c;
// 200, 4, 27


Infinity

무한대

더보기

Infinity는 양의 무한대, -Infinity는 음의 무한대의 값을 나타낸다.

floating point numbers의 한도(1.797693134862315E+308)를 초과하면 Infinity로 표현된다.

 

console.log(Infinity);          /* Infinity */
console.log(Infinity + 1);      /* Infinity */
console.log(Math.pow(10,1000)); /* Infinity */
console.log(Math.log(0));       /* -Infinity */
console.log(1 / Infinity);      /* 0 */
console.log(1 / 0);             /* Infinity */


isFinite()  isFinite(testValue)

어떤 숫자가 유한하고 legal한 숫자인지 체크한다.

더보기

리턴값: 불리언. 테스트값이 +Infinity/ -Infinity/ NaN이면 false를, 그 외에는 true를 리턴한다.

testValue - 테스트할 값

 

* Number 메소드에도 있다.

 

isFinite(Infinity);  // false
isFinite(NaN);       // false
isFinite(-Infinity); // false

isFinite(0);         // true
isFinite(2e64);      // true
isFinite(910);       // true

isFinite(null);      // true, would've been false with the 
                     // more robust Number.isFinite(null)

isFinite('0');       // true, would've been false with the 
                     // more robust Number.isFinite("0")

 

isNaN()  isNaN(value)

어떤 값이 illegal한 숫자인지 체크한다.

더보기

리턴값: 불리언. 그 값이 NaN(Not-a-Number)이면 true를, 그렇지 않으면 false를 리턴한다.

value - 테스트할 값

 

* Number.isNaN() 메소드와는 다르다.

 - isNaN()은 값을 Number로 변환한 후에 그것을 테스트한다.

 - Number.isNaN()은 Number로 변환하지 않는다. 따라서 데이터 타입이 Number가 아니면 true를 리턴하지 않는다.

* Number 메소드에도 있다. 

isNaN(NaN);       // 참
isNaN(undefined); // 참
isNaN({});        // 참

isNaN(true);      // 거짓
isNaN(null);      // 거짓
isNaN(37);        // 거짓

// 문자열
isNaN("37");      // 거짓: "37"은 NaN이 아닌 숫자 37로 변환됩니다
isNaN("37.37");   // 거짓: "37.37"은 NaN이 아닌 숫자 37.37로 변환됩니다
isNaN("123ABC");  // 참: parseInt("123ABC")는 123이지만 Number("123ABC")는 NaN입니다
isNaN("");        // 거짓: 빈 문자열은 NaN이 아닌 0으로 변환됩니다
isNaN(" ");       // 거짓: 공백이 있는 문자열은 NaN이 아닌 0으로 변환됩니다

// dates
isNaN(new Date());                // 거짓
isNaN(new Date().toString());     // 참

// 이것이 허위 양성이고 isNaN이 완전히 신뢰할 수 없는 이유이다.
isNaN("blabla")   // 참: "blabla"는 숫자로 변환됩니다.
                  // 이것을 숫자롯 parsing 하는 것을 실패하고 NaN을 반환한다.

 

NaN  Number.NaN

Not-a-Number 값을 나타낸다. legal한 숫자가 아니라는 것을 나타낸다.

더보기

* Number.NaN 프로퍼티와 같다. (the same. ===는 아님.)

 

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

function valueIsNaN(v) { return v !== v; }
valueIsNaN(1);          // false
valueIsNaN(NaN);        // true
valueIsNaN(Number.NaN); // true

 

Number()  Number(object)

object 인자를 그 object의 값을 나타내는 숫자로 변환한다.

더보기

리턴값: 숫자.

 - 그 값이 legal한 숫자로 변환될 수 없다면, NaN을 리턴한다.

 - 인자를 넣지 않으면, 0을 리턴한다.

 - 만약 parameter가 Date object라면, 1970년 1월 1일 자정 UTC로부터 지난 시간을 millisecond로 나타낸 숫자를 리턴한다.

object - 자바스크립트 object.

 

* Number property에도 있다. 

  var x1 = true;
  var x2 = false;
  var x3 = new Date();
  var x4 = "999";
  var x5 = "999 888";

/*
1
0
1594139091920
999
NaN
*/

 

parseFloat()  Number.parseFloat(string)

문자열을 분석해서 floating point number를 리턴한다.

더보기

리턴값: 숫자. 만약 첫번째 charater가 숫자로 변환될 수 없다면, NaN을 리턴한다.

string - 분석될 문자열

 

* specify된 문자열이 숫자인지 여부를 체크한다. 만약 숫자라면, 그 숫자의 끝까지 분석해서 그것을 문자열이 아닌 숫자로 리턴한다.

* 오직 문자열의 첫 번째 숫자만이 리턴된다.

* 맨 앞이나 맨 뒤에 공백이 있어도 괜찮다.

 

function circumference(r) {
  if (Number.isNaN(Number.parseFloat(r))) {
    return 0;
  }
  return parseFloat(r) * 2.0 * Math.PI ;
}

console.log(circumference('4.567abcdefgh'));
// expected output: 28.695307297889173

console.log(circumference('abcdefgh'));
// expected output: 0

 

parseInt()  Number.parseInt(string,[ radix])

문자열을 분석해서 정수를 리턴한다.

더보기

리턴값: 숫자. 만약 첫번째 charater가 숫자로 변환될 수 없다면, NaN을 리턴한다.

string - 분석될 문자열

radix - 몇 진법(2~36)

 ex) radix = 16 → 문자열에 있는 숫자가 16진법에서 10진법으로 분석된다.

 만약 문자열이 "0x"로 시작하면, radix = 16로 가정하고, 나머지는 radix = 10으로 가정한다.

 옛날 브라우저들(ECMAScript 5 이전)에서는 문자열이 "0"으로 시작하면, radix = 8로 가정한다.

 

* 오직 문자열의 첫 번째 숫자만이 리턴된다.

* 맨 앞이나 맨 뒤에 공백이 있어도 괜찮다.

* 옛날 브라우저들에서는 parseInt("010") = 8이다.

 

function roughScale(x, base) {
  const parsed = Number.parseInt(x, base);
  if (Number.isNaN(parsed)) {
    return 0;
  }
  return parsed * 100;
}

console.log(roughScale(' 0xF', 16));
// expected output: 1500

console.log(roughScale('321', 2));
// expected output: 0

 

String() = toString()


undefined

변수가 assign이나 declare되지 않았다는 것을 나타낸다.

 

unescape()

 

 

 

< 출처 >

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects

 

표준 내장 객체

이 장은 JavaScript의 모든 표준 내장 객체와 그 메서드 및 속성을 나열합니다.

developer.mozilla.org

https://www.w3schools.com/jsref/jsref_obj_global.asp

 

JavaScript Global Reference

JavaScript Global Reference The JavaScript global properties and functions can be used with all the built-in JavaScript objects. JavaScript Global Properties Property Description Infinity A numeric value that represents positive/negative infinity NaN "Not-

www.w3schools.com

 

댓글