λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
javascript/πŸ“– study

[μŠ€ν„°λ”” 1μ£Όμ°¨]7μž₯ μ—°μ‚°μž

by HomieKim 2022. 2. 4.

7μž₯ μ—°μ‚°μž

μ—°μ‚°μžλŠ” ν•˜λ‚˜μ˜μƒμ˜ ν‘œν˜„μ‹μ„ λŒ€μƒμœΌλ‘œ μ‚°μˆ , ν• λ‹Ή, 비ꡐ, 논리, νƒ€μž…, μ§€μˆ˜ μ—°μ‚° 등을 μˆ˜ν–‰ν•΄ ν•˜λ‚˜μ˜ 값을 λ§Œλ“­λ‹ˆλ‹€.

μ˜ˆμ‹œ

// μ‚°μˆ  μ—°μ‚°μž
5 * 4; // -> 20
// λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μž
"My name is " + "Lee"; // -> 'My name is Lee'
// ν• λ‹Ή μ—°μ‚°μž
color = "red"; // -> 'red'
// 비ꡐ μ—°μ‚°μž
3 > 5; // -> false
// 논리 μ—°μ‚°μž
true && false; // -> false
// νƒ€μž… μ—°μ‚°μž
typeof "Hi"; // -> string

μ‚°μˆ  μ—°μ‚°μž

ν”Όμ—°μ‚°μžλ₯Ό λŒ€μƒμœΌλ‘œ μˆ˜ν•™μ  계산을 μˆ˜ν–‰ν•΄ μƒˆλ‘œμš΄ 숫자 값을 λ§Œλ“ λ‹€

이항 μ‚°μˆ  μ—°μ‚°μž

  • 2개의 ν”Όμ—°μ‚°μžλ₯Ό μ—°μ‚°ν•˜μ—¬ 숫자 κ°’ λ§Œλ“¬
  • +λ”ν•˜κΈ° , -λΉΌκΈ° , *κ³±ν•˜κΈ° , /λ‚˜λˆ„κΈ° , % λ‚˜λ¨Έμ§€ 연산이 μžˆλ‹€.

λ‹¨ν•œ μ‚°μˆ  μ—°μ‚°μž

  • 1개의 ν”Όμ—°μ‚°μžλ₯Ό μ‚°μˆ  μ—°μ‚°ν•˜μ—¬ μˆ«μžκ°’ λ§Œλ“¬
  • ++증가, -- κ°μ†Œ, +아무 효과 μ—†μŒ, - μ–‘μˆ˜λ₯Ό 음수둜, 음수λ₯Ό μ–‘μˆ˜λ‘œ λ°˜μ „ν•œ 값을 λ°˜ν™˜
  • 숫자 νƒ€μž…μ΄ μ•„λ‹Œ ν”Όμ—°μ‚°μžμ— + λ‹¨ν•œ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λ©΄ ν”Όμ—°μ‚°μžλ₯Ό 숫자 νƒ€μž…μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ λ°˜ν™˜
var x = "1";

console.log(+x); // 1

console.log(x); // '1'

console.log(11 + "1"); // '111'

console.log(11 + +"1"); // '12'
  • -단항 μ—°μ‚°μžλŠ” ν”Όμ—°μ‚°μžμ˜ λΆ€ν˜Έλ₯Ό λ°˜μ „ν•œ 값을 λ°˜ν™˜
// λΆ€ν˜Έλ₯Ό λ°˜μ „ν•œλ‹€.
-(-10); // -> 10

// λ¬Έμžμ—΄μ„ 숫자둜 νƒ€μž… λ³€ν™˜ν•œλ‹€.
-"10"; // -> -10

// λΆˆλ¦¬μ–Έ 값을 숫자둜 νƒ€μž… λ³€ν™˜ν•œλ‹€.
-true; // -> -1

// λ¬Έμžμ—΄μ€ 숫자둜 νƒ€μž… λ³€ν™˜ν•  수 μ—†μœΌλ―€λ‘œ NaN을 λ°˜ν™˜ν•œλ‹€.
-"Hello"; // -> NaN

λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μž

  • +μ—°μ‚°μžλŠ” ν”Όμ—°μ‚°μž 쀑 ν•˜λ‚˜ 이상이 λ¬Έμžμ—΄μΈ 경우 λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μžλ‘œ λ™μž‘

ν• λ‹Ή μ—°μ‚°μž

  • μš°ν•­μ— μžˆλŠ” ν”Όμ—°μ‚°μžμ˜ 평과 κ²°κ³Όλ₯Ό μ’Œν•­μ— μžˆλŠ” λ³€μˆ˜μ— ν• λ‹Ή
  • 할당문은 κ°’μœΌλ‘œ ν‰κ°€λ˜λŠ” ν‘œν˜„μ‹μΈ λ¬ΈμœΌλ‘œμ„œ ν• λ‹Ήλœ κ°’μœΌλ‘œ 평가됨
var x;
// 할당문은 ν‘œν˜„μ‹μΈ 문이닀.
console.log((x = 10)); // 10

비ꡐ μ—°μ‚°μž

  • 동등 비ꡐ / μΌμΉ˜λΉ„κ΅λ‘œ λ‚˜λ‰¨
  • 동등 비ꡐ(==) μ—°μ‚°μžλŠ” 암묡적 νƒ€μž…λ³€ν™˜μ„ 톡해 νƒ€μž…μ„ μΌμΉ˜μ‹œν‚¨ ν›„ 같은 값인지 λΉ„κ΅ν•©λ‹ˆλ‹€.
  • μ •λ¦¬ν•˜μžλ©΄ 동등 비ꡐ( == ) λŠ” κ°’λ§Œ 비ꡐ 일치 비ꡐ (===)λŠ” κ°’κ³Ό νƒ€μž…μ΄ λͺ¨λ‘ κ°™μ•„μ•Ό true

μ‚Όν•­ 쑰건 μ—°μ‚°μž

  • μ‚Όν•­ 쑰건 μ—°μ‚°μž ν‘œν˜„μ‹μ€ κ°’μœΌλ‘œ 평가할 수 μžˆμŠ΅λ‹ˆλ‹€.(if~elseλž‘ 차이점)
var x = 10;
var result = x % 2 ? "ν™€μˆ˜" : "짝수";
console.log(result);

typeof μ—°μ‚°μž

  • ν”Όμ—°μ—°μ‚°μžμ˜ 데이터 νƒ€μž…μ„ λ¬Έμžμ—΄λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • μ£Όμ˜μ μ€ ν•¨μˆ˜λŠ” function type으둜 λ°˜ν™˜λ˜κ³  null은 object νƒ€μž…μœΌλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.
typeof ""; // -> "string"
typeof 1; // -> "number"
typeof NaN; // -> "number"
typeof true; // -> "boolean"
typeof undefined; // -> "undefined"
typeof Symbol(); // -> "symbol"
typeof null; // -> "object"
typeof []; // -> "object"
typeof {}; // -> "object"
typeof new Date(); // -> "object"
typeof /test/gi; // -> "object"
typeof function () {}; // -> "function"

κ·Έ μ™Έμ˜ μ—°μ‚°μž

  • ?. : μ˜΅μ…”λ„ 체이닝 μ—°μ‚°μž
  • ?? : null 병합 μ—°μ‚°μž
  • delete : ν”„λ‘œνΌν‹° μ‚­μ œ
  • new : μƒμ„±μž ν•¨μˆ˜λ₯Ό 호좜 ν• λ•Œ μΈμŠ€ν„΄μŠ€ 생성
  • instance of : μ’Œλ³€μ˜ 객체가 μš°λ³€μ˜ μƒμ„±μž ν•¨μˆ˜μ™€ μ—°κ²°λœ μΈμŠ€ν„΄μŠ€ 인지 νŒλ³„
  • in : ν”„λ‘œνΌν‹° 쑴재 확인

λŒ“κΈ€