Programming/Javascript

드림코딩 by 엘리. JavaScript 기초 강의(5) - Arrow Function은 무엇인가? 함수의 선언과 표현

i독 2021. 10. 7. 04:12

Procedure Language(절차적인 언어) 같은 경우에는 함수가 프로그램 내부에서 굉장히 중요한 역할 .

 

javscript object language 아니다. ES6에서 추가된 class Java 언어 처럼 Pure object oriented 아닌 prototype base 가짜의 object oriented 이다

 

Javascript procedure language 하나라고 있다.

 

function sub-program이라 부르기도 한다.

특징 : fundamental building block in the program / subprogram can be used multiple times / performs a task or calculates a value

주의 : one function === one thing / naming: doSomething, command, verb (목적을 확실) / 세분화 있으면 끝까지 쪼개라.

 

function is object in Js

 

parameters

primitive parameters : passed by value, 메모리에 Value 저장되어 있기에 Value 그대로 전달.

object parameters    : passed by reference, reference 저장되어 전달되어 진다.

오브젝트는 reference 전달되기 때문에 함수 안에서 object 값을 변경하게 되면 변경된 사항이 그대로 메모리에 적용이 된다.

 

Default parameters (added in ES6) > function showMessgae(messgae = 'Msg') 사용자가 parameter 전달하지 않아도 대체 되어서 사용.

 

Rest parameters (added in ES6) > function printAll(...args) 배열로서 파라미터가 들어간다.

 

현업에서의 Code Early return, Early exit 추구 . 대충 값이 다르면 빨리 빠져나오고 코드 보지 말라는 이야기. 가독성 문제도 있음.

 

First-class function

 > functions are treated like any other variable

 > can be assigned as a value to variable. (할당)

 > can be passed as an argument to other functions. (전달)

 > can be returned by another function. (반환)

 

Function expression

 > a function declaration can be called earlier than it is defined. (hoisted) / 호이스팅이 되어 선언 이전에도 사용이 가능하다.

 > a function expression is created when the execution reaches it.

 

anonymous function > const print = function () { bla bla }

named function > const printNo = function print() { bla bla ) / better debugging in debugger's stack traces 목적

 

Arrow function

 > always anonymous 간결하게 작성 있다.

 

IIFE: Immediately Invoked Function Expression

 > 문법 / 선언 함수 블록을 () 묶은 () 사용하면 선언과 동시에 사용 가능

 like this > (function hello() {console.log('IIFE')})()