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
'정리_창고' 카테고리의 다른 글
JavaScript - Operators 사전식 정리 (0) | 2020.07.08 |
---|---|
JavaScript - Number Methods 사전식 정리 (0) | 2020.07.08 |
JavaScript - Math Methods 사전식 정리 (0) | 2020.07.08 |
JavaScript - String Methods 사전식 정리 (0) | 2020.07.05 |
JavaScript - Array Methods 사전식 정리 (0) | 2020.07.04 |
댓글