JavaScript : Function

m_ngyeongΒ·2024λ…„ 1μ›” 5일
0

JavaScript

λͺ©λ‘ 보기
5/9
post-thumbnail

🍌 JavaScript


Function

Function(ν•¨μˆ˜)λŠ” 일련의 처리λ₯Ό ν•˜λ‚˜λ‘œ λͺ¨μ•„ μ–Έμ œλ“  ν˜ΈμΆœν•  수 μžˆλ„λ‘ λ§Œλ“€μ–΄ λ‘” 것이닀. ν•¨μˆ˜μ˜ μž…λ ₯ 값을 인수(argument)라 ν•˜κ³  ν•¨μˆ˜μ˜ 좜λ ₯ 값을 λ°˜ν™˜κ°’(Return Value)이라고 λΆ€λ₯Έλ‹€.

Rules for naming function :

  • 일반적으둜 동사 λ˜λŠ” λ™μ‚¬λ‘œ μ‹œμž‘λ˜λŠ” μ–΄νœ˜ μ‚¬μš©
    (예: funcion getMousePosition(event) {...})
  • Camel Caseλ₯Ό 주둜 μ‚¬μš©ν•¨ (예: saveImage)

Defining Functions

Function Declarations(ν•¨μˆ˜ μ„ μ–Έ)

  • function ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ ν•¨μˆ˜λ₯Ό μ •μ˜
  • ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜λ“€μ€ κ΄„ν˜Έ(())μ•ˆμ— μ‰Όν‘œ(,)둜 ꡬ뢄
  • ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” js문은 μ€‘κ΄„ν˜Έ({ /* ... */ })둜 묢음
function square(number) {
  return number * number;
}
  • ν•¨μˆ˜ square은 numberλΌλŠ” ν•˜λ‚˜μ˜ λ§€κ°œλ³€μˆ˜λ₯Ό 가짐
  • return문은 ν•¨μˆ˜κ°€ λ°˜ν™˜ν•˜λŠ” κ°’ 지정

Function Expression(ν•¨μˆ˜ ν‘œν˜„μ‹)

ν•¨μˆ˜ λ¦¬ν„°λŸ΄(function() {...})은 anonymous(읡λͺ… ν•¨μˆ˜, 무λͺ… ν•¨μˆ˜)라 ν•˜λ©°, ν•¨μˆ˜κ°€ 이름을 κ°€μ§ˆ ν•„μš” μ—†μŒμ„ 의미

  • ν•¨μˆ˜ λ¦¬ν„°λŸ΄μ„ μ‚¬μš©ν•  λ•ŒλŠ” 끝에 λ°˜λ“œμ‹œ μ„Έλ―Έμ½œλ‘ (;)을 λΆ™μž„
const square = function (number) {
  return number * number;
};
const x = square(4); // `x` 의 값은 16
  • 읡λͺ… ν•¨μˆ˜μ—λ„ ν•¨μˆ˜μ˜ 이름을 뢙일 수 있음
const square = function sq(number) {
  return number * number;
};
  • arrow function(ν™”μ‚΄ν‘œ ν•¨μˆ˜)
const square = number => {
  return number * number;
};
const x = square(4); // `x` 의 값은 16

Calling functions

  • parameter(λ§€κ°œλ³€μˆ˜, 인자)λž€ ν•¨μˆ˜μ˜ μ •μ˜μ—μ„œ 전달받은 인수λ₯Ό ν•¨μˆ˜ λ‚΄λΆ€λ‘œ μ „λ‹¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” λ³€μˆ˜λ₯Ό 의미
  • argument(인수)λŠ” ν•¨μˆ˜κ°€ 호좜될 λ•Œ ν•¨μˆ˜λ‘œ 값을 μ „λ‹¬ν•΄μ£ΌλŠ” κ°’
// passing of value(κ°’μ˜ 전달)
function add(x) {
  return (x = x + 1);
}
let a = 3;
let b = add(a);
console.log(`a = ${a}, b = ${b}`); // a = 3, b = 4

// passing by reference(μ°Έμ‘° 전달)
function add(p) {
  p.x = p.x + 1;
  p.y = p.y + 1;
  return p;
}
let a = { x: 3, y: 4 };
let b = add(a);
console.log(a, b); // {x: 4, y: 5} {x: 4, y: 5}

인수 μ—¬λŸ¬ 개λ₯Ό 전달할 λ•Œ

  • ν•¨μˆ˜μ˜ 인수λ₯Ό 객체의 ν”„λ‘œνΌν‹°μ— λ‹΄μ•„μ„œ 전달
let parameters = {
  x: 0,
  y: 0,
  vx: 10,
  vy: 15,
  radius: 5,
};

function setBallProperties(params) {...}

πŸ“Œ ν•¨μˆ˜μ˜ 리턴값을 없을 경우 undefinedκ°€ ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μ΄ 됨



μ°Έκ³ λ¬Έν—Œ,
μ΄μ†Œ νžˆλ‘œμ‹œ, γ€Žλͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ μž…λ¬Έγ€, μ„œμž¬μ› μ—­, κΈΈλ²—, 2019
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Functions

profile
μ‚¬μš©μž κ²½ν—˜ ν–₯상과 지속적인 μ„±μž₯을 μΆ”κ΅¬ν•˜λŠ” ν”„λ‘ νŠΈμ—”λ“œ 개발자 ΚšΘ‰Ιž

0개의 λŒ“κΈ€