You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
함수는 그 함수가 선언된 함수를 스코프로 갖는다. 만약 중첩 없이 코드의 탑 레벨에 함수가 정의된 경우, 전체 프로그램을 스코프로 갖는다.
Function expressions
함수 표현식으로 함수를 선언할 수 있다. 표현식으로 정의된 함수는 호이스팅 되지 않는다.
// 익명 함수 표현식constsquare=function(number){returnnumber*number}varx=square(4)// x gets the value 16// 네임드 함수 표현식 (재귀 가능)constfactorial=functionfac(n){returnn<2 ? 1 : n*fac(n-1)}console.log(factorial(3))
파라미터 전달
함수의 파라미터는 값으로 전달된다. 파라미터의 값을 변경해도 원래 값은 변하지 않는다. 하지만 객체가 전달된 경우 객체의 속성은 변경될 수 있다.
Method
함수가 객체 안에 속성으로 있을 경우, 이를 메소드라고 부른다.
Scope
함수 안에 선언된 변수는 함수의 외부에서 접근할 수 없다. 함수는 함수 외부의 변수에 접근할 수 있다.
arguments 객체
함수에 전달된 인수를 arguments를 사용해서 배열과 비슷한 방식으로 사용할 수 있다.
arguments: 현재 실행 중인 함수에 전달된 인수를 포함하는 배열 같은 객체.
arguments.callee : 현재 실행 중인 함수.
arguments.caller : 현재 실행 중인 함수를 호출한 함수.
arguments.length: 함수에 전달된 인수의 수.
arguments[i]
arguments는 배열이 아니다.
Function parameters
Default parameters
ECMA2015 이후로 파라미터에 기본 값을 지정할 수 있다. 지정하지 않을 경우 undefined 값을 갖는다.
Function
자바스크립트에서 모든 함수는
Function
객체다. 다른 객체들 처럼 속성 및 메소드를 가질 수 있는 일급 객체다.함수 선언
Function declarations
함수 정의(definition), 함수 선언(function declaration), 함수 구문(function statement)은
function
키워드를 상요한다.이렇게 선언된 함수는 호이스팅된다.
함수는 그 함수가 선언된 함수를 스코프로 갖는다. 만약 중첩 없이 코드의 탑 레벨에 함수가 정의된 경우, 전체 프로그램을 스코프로 갖는다.
Function expressions
함수 표현식으로 함수를 선언할 수 있다. 표현식으로 정의된 함수는 호이스팅 되지 않는다.
파라미터 전달
함수의 파라미터는
값
으로 전달된다. 파라미터의 값을 변경해도 원래 값은 변하지 않는다. 하지만 객체가 전달된 경우 객체의 속성은 변경될 수 있다.Method
함수가 객체 안에 속성으로 있을 경우, 이를 메소드라고 부른다.
Scope
함수 안에 선언된 변수는 함수의 외부에서 접근할 수 없다. 함수는 함수 외부의 변수에 접근할 수 있다.
arguments
객체함수에 전달된 인수를
arguments
를 사용해서 배열과 비슷한 방식으로 사용할 수 있다.arguments
: 현재 실행 중인 함수에 전달된 인수를 포함하는 배열 같은 객체.arguments.callee
: 현재 실행 중인 함수.arguments.caller
: 현재 실행 중인 함수를 호출한 함수.arguments.length
: 함수에 전달된 인수의 수.Function parameters
Default parameters
ECMA2015 이후로 파라미터에 기본 값을 지정할 수 있다. 지정하지 않을 경우
undefined
값을 갖는다.Rest parameters
함수의 마지막 파라미터의 앞에
...
를 붙여서 나머지 모든 인수를 자바스크립트 배열로 대체한다.Arrow functions
함수 표현식과 비교해서 짧은 문법으로 함수를 선언할 수 있다. 화살표 함수는 자체적인
this
,arguments
,super
,new.target
을 갖지 않는다. 화살표 함수는 항상 익명이다.The text was updated successfully, but these errors were encountered: