λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ’»Study/JavaScript

κΈ°λ³Έ νƒ€μž…κ³Ό ν‘œμ€€ λ©”μ†Œλ“œ / μ—°μ‚°μž

* κΈ°λ³Έ νƒ€μž…κ³Ό ν‘œμ€€ λ©”μ†Œλ“œ

 

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” κΈ°λ³Έ νƒ€μž…(숫자, λ¬Έμžμ—΄, λΆˆλ¦°κ°’)에 λŒ€ν•΄ 각각 호좜 κ°€λŠ₯ν•œ ν‘œμ€€ λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•˜κ³  μžˆλ‹€. κΈ°λ³Έ νƒ€μž…μ΄ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•  κ²½μš°μ—λŠ”, λ©”μ†Œλ“œ 처리 μˆœκ°„μ— 객체둜 λ³€ν™˜λœ ν›„ ν‘œμ€€ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•œλ‹€. λ©”μ†Œλ“œ 호좜이 λλ‚˜λ©΄ λ‹€μ‹œ κΈ°λ³Έκ°’μœΌλ‘œ λŒμ•„μ˜¨λ‹€. μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ κΈ°λ³Έ νƒ€μž…μ€ 객체가 μ•„λ‹˜μ—λ„ 각 νƒ€μž…λ³„λ‘œ 호좜 κ°€λŠ₯ν•œ ν‘œμ€€ λ©”μ†Œλ“œλ“€μ„ 마치 객체처럼 ν˜ΈμΆœν•  수 μžˆλ‹€.

 

 

var num = 0.5;
console.log(num.toExponential(1)); // 5.0e-1

console.log("stringtest".charAt(0)); // s

 

 

* μ—°μ‚°μž

 

1. + μ—°μ‚°μž

 

λ”ν•˜κΈ° μ—°μ‚°, λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚° 두 κ°€μ§€ μˆ˜ν–‰μ„ ν•œλ‹€. 숫자+숫자일 경우 λ”ν•˜κΈ° μ—°μ‚°, λ‚˜λ¨Έμ§€ κ²½μš°μ—λŠ” λ¬Έμžμ—΄ μ—°κ²° 연산을 μˆ˜ν–‰ν•œλ‹€.

 

var a = 1 + 4;
var b = 2 + 'bb';
var c = 'cc' + 3;
var d = 'dd' + 'ee';

console.log(a); // 5
console.log(b); // 2bb
console.log(c); // cc3
console.log(d); // ddee

 

 

1+4λ₯Ό μ œμ™Έν•œ λ‹€λ₯Έ 연산은 λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μœΌλ‘œ μˆ˜ν–‰λ˜μ—ˆλ‹€.

 

 

 

2. typeof μ—°μ‚°μž

 

ν”Όμ—°μ‚°μžμ˜ νƒ€μž…μ„ λ¬Έμžμ—΄ ν˜•νƒœλ‘œ λ¦¬ν„΄ν•œλ‹€.

 

var num = 1;
var str = 'ss';
var boo = true;
var n = null;
var ud = undefined;
var obj = new Object();
var arr = [];
var func = function a(){ };

console.log(typeof num); // 숫자 : number
console.log(typeof str); // λ¬Έμžμ—΄ : string
console.log(typeof boo); // λΆˆλ¦°κ°’ : boolean
console.log(typeof n); // null : object
console.log(typeof ud); // undefined : undefined
console.log(typeof obj); // 객체 : object
console.log(typeof arr); // λ°°μ—΄ : object
console.log(typeof func); // ν•¨μˆ˜ : function

 

 

 

3. == (동등) μ—°μ‚°μž, === (일치) μ—°μ‚°μž

 

동등 μ—°μ‚°μž, 일치 μ—°μ‚°μž λͺ¨λ‘ 두 값이 λ™μΌν•œμ§€ 확인할 λ•Œ μ‚¬μš©ν•œλ‹€. == μ—°μ‚°μžλŠ” λΉ„κ΅ν•˜λ €λŠ” ν”Όμ—°μ‚°μžμ˜ νƒ€μž…μ΄ λ‹€λ₯Ό 경우 νƒ€μž… λ³€ν™˜μ„ 거친 ν›„ λΉ„κ΅ν•˜λ©°, === μ—°μ‚°μžλŠ” νƒ€μž…μ΄ λ‹€λ₯Ό κ²½μš°μ—λ„ νƒ€μž… λ³€ν™˜μ„ ν•˜μ§€ μ•Šκ³  λΉ„κ΅ν•œλ‹€λŠ” 차이점이 μžˆλ‹€.

 

console.log(1 == '1'); // true
console.log(1 === '1'); // false

 

1 == '1'μ—μ„œ ν”Όμ—°μ‚°μž λ‘˜μ˜ νƒ€μž…μ΄ λ‹€λ₯΄λ―€λ‘œ, λ¬Έμžμ—΄ '1'을 숫자 1둜 λ³€ν™˜ν•΄μ„œ λΉ„κ΅ν•˜μ˜€κ³  κ·Έ κ²°κ³Ό trueκ°€ 좜λ ₯λ˜μ—ˆλ‹€. 1 === '1'의 경우 λ‘˜μ˜ νƒ€μž…μ΄ λ‹€λ₯Ό λ•ŒλŠ” 항상 falseκ°€ 좜λ ₯λœλ‹€.

 

== μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λ©΄ νƒ€μž… λ³€ν™˜μ— λ”°λ₯Έ 잘λͺ»λœ κ²°κ³Όλ₯Ό 얻을 수 μžˆμœΌλ―€λ‘œ λŒ€λΆ€λΆ„μ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ”© κ°€μ΄λ“œμ—μ„œλŠ” === μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•œλ‹€. jQuery μ½”λ”© κ°€μ΄λ“œ λΌμΈμ—μ„œλ„ λ§ˆμ°¬κ°€μ§€λ‘œ === μ—°μ‚°μžλ₯Ό κΆŒν•˜κ³  μžˆλ‹€.

 

 

 

4. !! μ—°μ‚°μž

 

!! μ—°μ‚°μžλŠ” ν”Όμ—°μ‚°μžλ₯Ό λΆˆλ¦°κ°’μœΌλ‘œ λ³€ν™˜ν•œλ‹€.

 

 

console.log(!!0); // false
console.log(!!1); // true
console.log(!!'str'); // true
console.log(!!''); // false
console.log(!!true); // true
console.log(!!false); // false
console.log(!!null); // false
console.log(!!undefined); // false
console.log(!!{}); // true
console.log(!![]); // true