JS - Fundamental (datatype);

Moonshot·2022년 4월 28일
0

Javascript

목록 보기
4/5

Primitive Types : 원시 타입

  • boolean
  • symbol
  • bigint(future)?
  • null?
  • undeclared?
  • undefind?
  • object
  • function?
  • string
  • number
  • array?

1. undefined :

var v;
typeof v; // "undefined"

undefined는 타입의 형태를 return 하는 것이 아니라 string 타입의 “undefined” 값을 반환해준다.

2. null :

var v = null;
typeof v;  // "object"

null은 object이다.

3. function :

var v = function(){}; 
typeof v; // "function"

function은 “function”이다.

4. array :

var v = [];
typeof v; // "object"

array는 “object” 이다.

5. symbol :

var v = Symbol();
typeof v; // "symbol"

symbol은 “symbol”이다.

6. boolean :

var v = true;
typeof v; // "boolean"

boolean은 “boolean”이다.

7. object :

var v = {};
typeof v; // "object"

object는 “object”이다.

8. string :

var v = "Hello world";
typeof v; // "string"

string은 “string”이다

9. bigint :

var v = 42n;
typeof v; // "bigint

bigint는 "bigint"이다. ( 무한대로 증가할 수 있는 숫자 ).

10. undefined vs undeclared vs uninitialized (TDZ)

11. NaN: invalid Number & isNaN

var myCatsAge = Number("n/a"); // NaN
myCatsAge === myCatsAge; // false : NaN 독립적인 값으로 취급되기 때문에 비교할때 참이 아니다.

NaN은 독립적인 값을 갖는 것으로 취급 되기 때문에 같은 값을 비교한다 하더라도 false를 리턴받는다.

isNaN(myCatsAge); // true

isNaN을 사용하면 true를 리턴 받을 수 있다.

12. Negative Zero

var negaZero = -0;
negaZero === -0;  // true

negaZero.toString(); // "0"
negaZero === 0; // true
negaZero < -0; // false
negaZero < -0; // false

Object.is(negaZero, -0); // true
Object.is(negaZero, 0); // false

-0 네거티브 제로는 자바스크립트에서 다루기 힘들며

Object.is를 사용해서만 참 거짓을 판명할 수 있다.

// 네거티브제로는 Math.sign을 사용할 수 없다.
Math.sign(-0); // -0
Math.sign(0); // 0
// fix
function sign(v) {
	return v !== 0? Math.sign(v) : Object.is(v,-0) ? -1 : 1;
};

13. Fundamental Object : (buil-in object, native function)

Use 사용할것

사용하지 말것

  • Object()
  • Array()
  • Function()
  • Data()
  • RegExp()
  • Error()
  • String()
  • Number()
  • Boolean()
profile
Jidoil

0개의 댓글