Js νƒ€μž… 확인 - Js taib hwag-in

😈 μžλ°”μŠ€ν¬λ¦½νŠΈ typeof μ—°μ‚°μž

  • typeof μ—°μ‚°μžλŠ” λ³€μˆ˜μ˜ 데이터 νƒ€μž…μ„ λ°˜ν™˜ν•˜λŠ” μ—°μ‚°μžμ΄λ‹€.

β—οΈμš©λ²•

typeof variable

typeof (variable)


😈 νƒ€μž…

  • μžλ°”μŠ€ν¬λ¦½νŠΈμ—λŠ” νƒ€μž…(Type)μ΄λΌλŠ” κ°œλ…μ΄ μžˆλ‹€.
  • νƒ€μž…μ΄λž€ λ³€μˆ˜μ— ν• λ‹Ήν•  수 μžˆλŠ” 데이터 ν˜•νƒœλ₯Ό λ§ν•œλ‹€. ex)숫자, 문자
    즉, λ³€μˆ˜μ—λŠ” μˆ«μžλ‚˜ 문자 λ“± λ‹€μ–‘ν•œ ν˜•νƒœμ˜ 데이터 νƒ€μž…μ„ 담을 수 μžˆλ‹€.
  • 데이터 νƒ€μž…μ— 따라 ν•  수 μžˆλŠ” 일이 λ‹€λ₯΄λ‹€.
    즉, νƒ€μž…λ§ˆλ‹€ λ‹€λ₯Έ 속성과 λ©”μ„œλ“œκ°€ μžˆλ‹€.

😈 μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 데이터 νƒ€μž…

μ›μ‹œ νƒ€μž… (Primitive Type)

  • Number
  • String
  • Boolean
  • Undefined
  • Null
  • Symbol(ES6에 μΆ”κ°€, 객체 속성을 λ§Œλ“œλŠ” 데이터 νƒ€μž…)

μ°Έμ‘°νƒ€μž…(Object/Reference Type)

  • 객체(Object)
  • λ°°μ—΄(Array)
  • ν•¨μˆ˜(Fuction)

😈 μ›μ‹œνƒ€μž…(Primitive Type)

  • μ›μ‹œ νƒ€μž…μ΄ 할당될 λ•ŒλŠ” λ³€μˆ˜μ— κ°’(value) μžμ²΄κ°€ λ‹΄κΈ΄λ‹€.(λ©”λͺ¨λ¦¬ μ°Έμ‘°κ°€ μ•„λ‹Œ κ°’μ˜ 볡사)
  • λ©”λͺ¨λ¦¬μƒμ— κ³ μ •λœ 크기둜 μ €μž₯되며 μ›μ‹œ 데이터 κ°’ 자체λ₯Ό λ³΄κ΄€ν•˜λ―€λ‘œ λΆˆλ³€μ μ΄λ‹€.

Number

λͺ¨λ“  숫자λ₯Ό μ‹€μˆ˜λ‘œ 처리

let num_1 = 99;
let num_2 = -99;
console.log(typeof num_1); //Number
console.log(typeof num_2); //Number

String

UTF-16으둜 κ΅¬μ„±λœ λ¬Έμžμ—΄

  • μž‘μ€λ”°μ˜΄ν‘œ(''), ν°λ”°μ˜΄ν‘œ(""), ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄(``)둜 λ¬Έμžμ—΄μ„ ν• λ‹Ή
  • ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄μ€ μ€„λ°”κΏˆ, 곡백 λͺ¨λ‘ 적용됨
  • \t :νƒ­(μˆ˜ν‰), \n:μ€„λ°”κΏˆ 문자 (: μ΄μŠ€μΌ€μ΄ν”„ μ‹œν€€μŠ€_ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ νŠΉμ„±μƒ ν‘œν˜„ν•  수 μ—†λŠ” κΈ°λŠ₯, 문자λ₯Ό ν‘œν˜„)
let str_1 = 'Hi'; //Hi
let str_2 = "Hi"; //Hi
let str_3 = `Hi, Hello μ•ˆλ…•?		λ‚΄κ°€ 		λˆ„κ΅°μ§€




			μ•„λ‹ˆ? `; // 'Hi, Hello μ•ˆλ…•?\t\tλ‚΄κ°€ \t\tλˆ„κ΅°μ§€\n\n\n\n\n\t\t\tμ•„λ‹ˆ? '
console.log(typeof str_1); //string
console.log(typeof str_2); //string
console.log(typeof str_3); //string

Boolean(λΆˆλ¦¬μ–Έ)

true, false

let bool_1 = true; 
let bool_2 = 2>3;
console.log(typeof bool_1); //boolean
console.log(typeof bool_2); //boolean

Undefined

λ³€μˆ˜λ₯Ό μ„ μ–Έλ§Œ ν•˜κ³  값을 ν• λ‹Ήν•˜μ§€ μ•Šμ•˜μ„ λ•Œ λ“€μ–΄κ°€λŠ” κ°’

  • 값도 νƒ€μž…λ„ undefined
let maBoyFriend;
console.log(yrBoyFriend); 		 //undefined
console.log(typeof yrBoyFriend); //undefined

Null

μ˜λ„μ μœΌλ‘œ '값이 μ—†μŒ'을 λͺ…μ‹œν•˜κΈ° μœ„ν•΄ ν• λ‹Ήν•˜λŠ” κ°’

  • Null의 κ°’ 체크λ₯Ό μœ„ν•΄μ„œλŠ” μΌμΉ˜μ—°μ‚°μž(===)λ₯Ό μ‚¬μš©
  • typeof μ—°μ‚°κ²°κ³ΌλŠ” 초기 μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ²„κ·Έλ‘œ μˆ˜μ •ν•˜λ©΄ 파μž₯이 클까봐 κ·Έλƒ₯ λ‘κ³ μžˆλ‹€ 함.
let nu = null;
console.log(typeof nu);		//object
console.log(nu === null);	//true

Symbol

λ³€κ²½ λΆˆκ°€λŠ₯ν•œ μœ μΌν•œ 값을 생성할 λ•Œ μ‚¬μš©, κ°’ 자체의 확인이 λΆˆκ°€ν•˜μ—¬ μ™ΈλΆ€λ‘œ λ…ΈμΆœλ˜μ§€ μ•ŠμŒ.

let sym_1 = Symbol('key');
console.log(typeof sym_1); //Symbol

let sym_1 = Symbol('key');
let sym_2 = Symbol('key');
console.log(sym_1 === sym_2); // flase

let sym_3 = Symbol('hi');
console.log(sym_3); // Symbol(hi)
sym.description; // 'hi'
	sym.description = 'hi hi hi';	
console.log(sym_3);	// Symbol(hi)

5 + 'abc' //'5abc'
let sym_4 = Symbol('hi')
sym_4 + 'abc' // Uncaught TypeError: Cannot convert a Symbol value to a string
  • 특1. 항상 μœ μΌν•˜λ‹€ -> κ³ μœ ν•œ μ‹λ³„μžλ₯Ό κ°€μ§€κ²Œ λœλ‹€.
  • 특2. μ½κΈ°μ „μš©(description)으둜 μƒˆλ‘œμš΄ 값을 할당해도 λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • 특3. String κ°’μœΌλ‘œ μžλ™ λ³€ν™˜λ˜μ§€ μ•ŠλŠ”λ‹€.
    *Symbol 값은 Symbol ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ μƒμ„±ν•œλ‹€.

😈 μ°Έμ‘°νƒ€μž…(Refenece Type)

  • μ›μ‹œνƒ€μž…μ΄ μ•„λ‹Œ λͺ¨λ“  것
  • μ°Έμ‘°νƒ€μž…μ€ μ›μ‹œνƒ€μž… λ°μ΄ν„°μ˜ 집합이닀.
  • μ°Έμ‘° νƒ€μž…μ€ κ³ μ •λœ 크기의 보관함이 μ•„λ‹ˆλ‹€.
  • μ°Έμ‘° νƒ€μž…μ„ λ³€μˆ˜μ— ν• λ‹Ήν•  λ•ŒλŠ” 값이 μ•„λ‹Œ λ°μ΄ν„°μ˜ μ£Όμ†Œλ₯Ό μ €μž₯ν•œλ‹€.

객체(Object) : {}

let obj = {};
console.log(typeof obj); //object

λ°°μ—΄(Array) : []

  • 배열은 'object'의 νŠΉμˆ˜ν•œ ν•œ ν˜•νƒœμ΄κΈ° λ•Œλ¬Έμ— typeofλ§ŒμœΌλ‘œλŠ” 객체가 배열인지 확인할 수 μ—†μŒ

  • 객체가 배열인지 ν™•μΈν•˜κΈ° μœ„ν•΄μ„œλŠ” 'isArray()' ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ•Ό 함

let arr = [1,2,3,4];
console.log(typeof arr); //object

console.log(Array.isArray(arr)); //true
console.log(Array.isArray({}));  //false

ν•¨μˆ˜(Fuction) : function(){}

let func = function(){};
console.log(typeof func); //function

😈 참고

  • https://curryyou.tistory.com/182?category=898979

  • https://velog.io/@jakeseo_me/2019-04-01-1904-%EC%9E%91%EC%84%B1%EB%90%A8-2bjty7tuuf

  • https://sanghaklee.tistory.com/23

  • https://velog.io/@yunsungyang-omc/μžλ°”μŠ€ν¬λ¦½νŠΈ-κΈ°λ³Έν˜•κ³Ό-μ°Έμ‘°ν˜•

  • https://hanamon.kr/javascript-%EB%B3%80%EC%88%98%EC%9D%98-%ED%83%80%EC%9E%85-%EC%9B%90%EC%8B%9C%ED%98%95%EA%B3%BC-%EC%B0%B8%EC%A1%B0%ED%98%95/

  • https://hianna.tistory.com/402 [Javascript] 배열인지 ν™•μΈν•˜κΈ° - isArray()

  • https://another-light.tistory.com/105

  • https://junkim.netlify.app/posts/symbol