๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daily Front_Minhhk

[JS] ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ๋ณธ๋ฌธ

Code๊ฐœ๋ฐœ์ผ์ง€

[JS] ๋ณ€์ˆ˜, ํ•จ์ˆ˜

Minhhk 2022. 10. 23. 23:18
๐Ÿ”ฅ ํ•˜๋ฃจ์˜ ์‹œ์ž‘ ์ •์‹  ์ฐจ๋ฆฌ์ž! ์ž ์„ ๊นจ์ž ์˜ค์ „๋ฐ˜์€ ๋„ˆ๋ฌด ํž˜๋“ค๋‹คใ…‹ใ…‹โ‚ฉ

 

 ๐Ÿ’ก ์˜ค๋Š˜ ์ฒ˜์Œ์œผ๋กœ ํŽ˜์–ดํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ–ˆ๋‹ค! ํŽ˜์–ด์™€ ํ•จ๊ป˜ ๋ณต์Šต๊ฒธ์‚ฌ ๋ฌธ์ œํ’€๊ณ , ๋Œ€ํ™”๋ฅผ ํ•˜๋ฉฐ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ดœ์ฐฎ์€ ๊ฒฝํ—˜์ด์—ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ๊ณ„์† ํŽ˜ํ”„๋ฅผ ํ• ํ…๋ฐ ์—ด์‹ฌํžˆ ์ž˜ ํ•ด๋ด์•ผ๊ฒ ๋‹ค?! ๋ผ๋Š” ๋‹ค์ง!

 

๋ณ€์ˆ˜

  1. ๋ฐ์ดํ„ฐ ๋ณด๊ด€ํ•จ ( ๋ฉ”๋ชจ๋ฆฌ )
  2. ๋ณด๊ด€ํ•จ์˜ ํฌ๊ธฐ๋Š” ๋ชจ๋‘ ๋™์ผ - ๊ธฐ๋ณธ 8bytes
  3. ๊ฐ ๋ณด๊ด€ํ•จ์˜ ์ด๋ฆ„ = ๋ณ€์ˆ˜
  • ๋ณด๊ด€ํ•จ์„ ํ™•๋ณดํ•˜๋Š”๊ฑด let ํ‚ค์›Œ๋“œ์™€ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉ
let age ;
  • ํ™•๋ณด๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ• ๋‹น์ด๋ผ๊ณ  ํ•œ๋‹ค.
age = 20;
  • ์ด๋•Œ ๋“ฑํ˜ธ ๊ธฐํ˜ธ๋Š” ๊ฐ™๋‹ค๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค ๋ผ๋Š”์ ์„ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.
  • ์„ ์–ธ๊ณผ ํ• ๋‹น ๋™์‹œ์— ๊ฐ€๋Šฅ
let name =  'kim' ;
  • consol.log(age*2) ๊ฐ€ 20๊ฐ€ ๋œ๋‹ค.
  • 'hello' + name ์„ ํ•˜๋ฉด hello kim ์ถœ๋ ฅ ( ์ด๋–„ name์—๋Š” ๋”ฐ์˜ดํ‘œ๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ์ด๋ฏธ name๋ณ€์ˆ˜์— 'kim'์ด ํ• ๋‹น ๋ฌ๊ธฐ ๋–„๋ฌธ.)

typeof ๋กœ ์ž๋ฃŒํ˜•์˜ ์–ด๋–ค ํ˜•์‹์ธ๊ฐ€? ์ถœ๋ ฅ ๊ฐ€๋Šฅ

์›์‹œ ์ž๋ฃŒํ˜•

string, number, boolean, undefined

<aside> ๐Ÿ‘ฉ๐Ÿป‍๐ŸŽ“ undefined ๋„ ํƒ€์ž…์ด๊ณ  ํ•จ์ˆ˜๋„ ํƒ€์ž…์ด๋‹ค!!

</aside>

์—ฐ์‚ฐ์ž๋Š” ํ”ผ์—ฐ์‚ฐ์ž์˜ ํ‰๊ฐ€ ์ „ ์ž๋ฃŒํ˜•์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜!

// Numbers
typeof 3 === 'number';
typeof 3.14 === 'number';
typeof NaN === 'number'; //NotANumber ์ž„์—๋„ number ์ถœ๋ ฅ^^
typeof Number(1) === 'number';

// Strings
typeof "dd" === 'string';
typeof "asdf" === 'string';

// Booleans
typeof true === 'boolean';
typeof false === 'boolean';
console.log(typeof (1<2)) == boolean

// Undefined
typeof undefined === 'undefined';

ํ•จ์ˆ˜

function aaa(num){}
  • ํ‚ค์›Œ๋“œ(function)
  • ์ด๋ฆ„(aaa)
  • ํŒŒ๋ผ๋ฏธํ„ฐ(num)

ํ•จ์ˆ˜๋Š” ์ฝ”๋“œ์˜ ๋ฌถ์Œ ์ด๋‹ค!

  • ๋ฒ„ํŠผ์ฒ˜๋Ÿผ ํ•„์š”ํ• ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ธฐ๋Šฅ์˜ ๋‹จ์œ„)
  • ํ•จ์ˆ˜๋Š” ๊ตฌ์ฒด์ ์ธ ์ž…๋ ฅ๊ฐ’๊ณผ ์ถœ๋ ฅ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœํ›„์—๋Š” ๋ฐ˜๋“œ์‹œ ๋Œ์•„์˜จ๋‹ค(return)

ํ•จ์ˆ˜์˜ ๊ธฐ์ดˆ

๋ฐ˜๋ณต๋˜๋Š” ์ผ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธํ•˜๋‹ค!(๋„ํ˜•์˜ ๋„“์ด ๊ตฌํ•˜๊ธฐ)

ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ์žˆ๋‹ค.

return๋ฌธ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด undefined๊ฐ€ ๋œฌ๋‹ค!

ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค๋Š” ๊ฒƒ์€?

3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. ํ•จ์ˆ˜์„ ์–ธ๋ฌธ์œผ๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒฝ์šฐ
function a(c,d){
let f = c*d
return f
} 

c์™€ d๋Š” ์ž…๋ ฅ๊ฐ’์ด๋‹ค.

return f;

f๋Š” ์ถœ๋ ฅ๊ฐ’์ด๋‹ค

  1. ํ•จ์ˆ˜ ํ‘œํ˜„์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ
const a = function(c,d){
let f = c*d;
return f;
}
// ๋จผ์ € ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ํ• ๋‹นํ•œ๋‹ค!!
  1. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ
const plus = (x,y) => {
let result = x+y;
return result;
}
// ํ•จ์ˆ˜ํ‘œํ˜„์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜์„ ์–ธํ›„
// ํ™”์‚ดํ‘œ๋กœ ์ต๋ช…ํ•จ์ˆ˜ ํ• ๋‹น!!

ํ™”์‚ดํ‘œํ•จ์ˆ˜ >>

const a = (c,d) => c*d // ์ •์ƒ์ž‘๋™
cosnt a = (c,d) => {c*d} // ์˜ค๋ฅ˜!! undefined ๋ฆฌํ„ด

ํ•จ์ˆ˜ ๋ณธ๋ฌธ์— return๋ฌธ๋งŒ ์žˆ์œผ๋ฉด return์ƒ๋žต ๊ฐ€๋Šฅ! (์ฃผ์˜! ์ค‘๊ด„ํ˜ธ๋„ ์ƒ๋žตํ•ด์•ผ ์ •์ƒ์ž‘๋™)


ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๋Š” ๊ฒƒ์€?

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

plus(1,2); // 1+2 == 3
  • ๋งค๊ฐœ๋ณ€์ˆ˜(parameter)→ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ž…๋ ฅ์— ๋”ฐ๋ผ์„œ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜. ํ‚ค์›Œ๋“œ ์•ˆ์“ฐ๊ณ  ์‚ฌ์šฉ๊ฐ€๋Šฅ
  • ์ „๋‹ฌ์ธ์ž(argument)→ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ parameter์— ํ• ๋‹น๋˜๋Š” ๊ฐ’์„ ๋งํ•จ.

Chapter1. ๋ณ€์ˆ˜

  • ๋ณ€์ˆ˜ ์‚ฌ์šฉ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊บผ๋‚ด ์“ฐ๋Š” ๊ฒƒ์ž„์„ ์ดํ•ดํ•œ๋‹ค.
  • JavaScript์—์„œ ๋ณ€์ˆ˜์˜ ์„ ์–ธ๊ณผ ๊ฐ’์˜ ํ• ๋‹น์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • =๊ฐ€ "๊ฐ™๋‹ค"๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹ˆ๋ผ ํ• ๋‹น ์—ฐ์‚ฐ์ž์ž„์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ console ํƒญ์„ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ๊ตฌ๊ตฌ๋‹จ์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

Chapter2. ํƒ€์ž…

  • ์›์‹œ ์ž๋ฃŒํ˜• string, number, boolean, undefined์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํƒ€์ž…๋งˆ๋‹ค ๋‹ค๋ฅธ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • typeof ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŠน์ • ๊ฐ’์˜ ํƒ€์ž…์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋น„๊ต ์‹œ ์—„๋ฐ€ํ•œ ๋น„๊ต( === ๊ณผ !== )์˜ ํ•„์š”์„ฑ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

Chapter3. ํ•จ์ˆ˜

  • ํ•จ์ˆ˜๊ฐ€ "์ž‘์€ ๊ธฐ๋Šฅ์˜ ๋‹จ์œ„"๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•จ์ˆ˜ ์„ ์–ธ์„ ์œ„ํ•ด ํ•„์š”ํ•œ keyword, name, parameter, body์— ๋Œ€ํ•ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ๋ฆฌํ„ด์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ณ , ์‹ค์ œ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜์—ฌ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•จ์ˆ˜ ๊ทธ ์ž์ฒด(func)์™€, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ(func())๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋งค๊ฐœ๋ณ€์ˆ˜(parameter)์™€ ์ „๋‹ฌ์ธ์ž(argument)๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์„ ์–ธ์‹, ํ‘œํ˜„์‹, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ๋ฐ”๊พธ์–ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.