[ javascript ] 함수 선언 , 사용법 > javascript&jQuery

본문 바로가기
사이트 내 전체검색

javascript&jQuery

[ javascript ] 함수 선언 , 사용법

페이지 정보

작성자 웹지기 댓글 0건 조회 521회 작성일 21-02-11 01:55

본문

함수(Function)

프로그램을 구성하는 빌딩블럭

서브프로그램이라고도 불리며 여러번 재사용이 가능

한가지의 작업이나 값을 계산할 때 사용

-fundamental building block in the program

-subprogram can be used multiple times

-performs a task or calculates a value


1. 함수 정의(Function declaration)

function 함수명(파라미터1, 파라미터2) {비지니스로직....리턴 값;}

하나의 함수는 한가지 일만 하도록 만든다.

함수 이름은 동사의 형태로 지정하는게 좋다.

createCardAndPoint처럼 두가지의 역할을 하는 함수라면

두개로 나눠서 createCard와 createPoint로 나누는게 좋다.

함수는 object 이므로 변수할당, 파라미터 전달, 함수로 리턴 모두 가능하다.

function name(param1, param2) { body.... return;}

one function === one thing

naming : doSomething, command, verb

e.g. createCardAndPoint -> createCard, createPoint

function is object in JS

function printHello(){

    console.log('hello');

}

printHello();


function log(message) {

    console.log(message);

}


log('Hello~');

log(1234);


2. 매개변수(Parameters)

사전 매개변수 : (메모리에)값으로 전달

객체 매개변수 : (메모리에)참조값으로 전달

premitive parameters: passed by value

object parameters: passed by reference

function changeName(obj){

    obj.name = 'coder';//전달되는 매개변수의 이름값을 coder로 변경

}

const test = {name:'test'};

changeName(test);

console.log(test);


3. 기본매개변수(Default parameters(added in ES6))

function showMessage(message, from='unknown'){

//기존에 from의 값이 없을 경우 에러가 발생해서

//if(from~~~~) 구문으로 오류를 방지했다. 

//하지만, ES6부터는 위처럼 from='unknown' 으로 아래의 구문을 대신할 수 있다.

//function showMessage(message, from){

//    if(from === undefined) {

//        from = 'unknown';

//    }

    console.log(`${message} by ${from}`);

}

showMessage('Hi!');


4. 정해지지않은 매개변수(Rest parameters (added in ES6));

function printAll(...args) {

    for(let i=0; i<args.length; i++) {

        console.log(args[i]);

    }


for of 구문

    for(const arg of args) {

        console.log(arg);

    }


foreach 구문

    args.forEach((arg) => console.log(arg));

}

printAll('dream', 'coding', 'test');


5. 지역변수(지역범위(Local scope))

let globalMessage = 'global';

function printMessage() {

    let message = 'hello'; //지역변수(local variable)

    console.log(message);

    console.log(globalMessage);


    function printAnother() {

        console.log(message);

        let childMessage = 'hello';

    }

    //지역변수를 외부에서 출력을 요청하면 오류가 발생한다.

    //console.log(childMessage);


    //반환값이 없는 경우 return 생략가능

    //return undefined;

}

//지역변수를 외부에서 출력을 요청하면 오류가 발생한다.

//(var 변수 선언시 poisting이 일어나 지역변수와 전역변수 모두 사용, 보안에 취약)

//console.log(message); 

printMessage();


6. 값 반환(Return a value)

function sum(a, b) {

    return a+b;

}

const result = sum(1,2);

console.log(`sum : ${sum(1,2)}`);

console.log(`sum : ${result}`);


7. Early return, early exit

if구문내에서만 처리가 될 때에는 else 일때 오류가 발생 할 수 있으므로 

아래처럼 if처리를 하게 좋은 코드가 아니다.

bad code

function upgradeUser(user) {

    if(user.point > 10) {

        //업그레드시킬 구문(long upgrade logic.....)

    }

}


이럴경우 반대의 구문으로 처리를 하고 return;으로 보내고

정상적일 때는 구문을 처리 할 수있게 if처리를 바꾼다.

good code

function upgradeUser(user) {

    if(user.point <= 10) {

        return;

    }

    //업그레드시킬 구문(long upgrade logic.....)

}

 


추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 63건 1 페이지
  • 63 [ javascript ] CDATA 사용 이유
  • 1) CDATA로 감싼 JAVASCRIPT부분이 의도치 않게 XML Parser 에 의해 잘못 인식되는 것을 막기 위함. 2) XHTML이 아닌 HTML로 인식되는 경우에도 JAVASCRIPT가 문제없이 동작하도록 하기 위함. 3) javascript안에서 태그를 사용할 경우 CDATA 선을 해줘서 오류처리를 막기 위함. 사용예제 &lt;script&gt; //&lt;![CDATA[ JAVASCRIPT //]]&gt; &lt;/scri...
  • 웹지기 01-20 813 0 0 댓글 0
  • 62 [ javascript ] promise 를 async & await 로 쉽게 써보자
  • promise 를 async &amp; await 로 쉽게 써보자 //promise는 chaning가 가능하다. //체인이 많아 지면 복잡해진다. //async await 동기식으로 순서를 작성하는 것 처럼 간편하게 작성가능 //기존에 존재하는 promise 위에 간단한 api를 제공하는데 //더 간편하게 제공하는 것을 syntactic sugar //프로토 타입을 베이스트로한 살짝 덭붙여진 것 //async &amp; await //clear style of ...
  • 웹지기 02-27 1780 0 0 댓글 0
  • 60 [ javascript ] promise
  • 'use strict' //promse 코드를 이용해서 비동기식으로 처리 하는 방법 //Promse is a JavaScript object for asynchronous operation. //state : pending(진행중) -&gt; fulfilled(성공적으로 종료) or rejected(파일을 찾을 수 없거나 문제가 생기면) //Producer(원하는 기능을 수행해서 해당데이터를 만듬) vs Consumer(해당 데이터를 소비) //1. Producer //...
  • 웹지기 02-21 1439 0 0 댓글 0
  • 59 [ javascript ] 콜백지옥 - callback
  • 'use strict' //JavaScript is synchronous. //Execute the code block by orger after hoisting. //hoisting: var, function declearation //1. 동기와 비동기 console.log('1'); //동기식 setTimeout(function(){ //비동기식 console.log('2');//브라우져에서 함수에 의해 대기했다가 실행(비동기 실행방법) },1000); // 여기서 f...
  • 웹지기 02-21 1542 0 0 댓글 0
  • 58 [ javascript ] json 사용법
  • JSON //simplest data interchange format. //lightweight text-abased structure. //easy to read. //key-value pairs. //used for serialization and transmission of data between the network the network the network connection. //independent programming language and platform. //J...
  • 웹지기 02-21 1372 0 0 댓글 0
  • 57 [ javascript ] 유용한 함수들 10가지
  • javascript 유용한 함수들 10가지 https://youtu.be/3CUjtKJ7PJg // Q1. make a string out of an array { const fruits = ['apple', 'banana', 'orange']; const result = fruits.join(); console.log(result); } // Q2. make an array out of a string { ...
  • 웹지기 02-15 1011 0 0 댓글 0
  • 55 [ javascript ] object 생성, 사용방법
  • 'use strict'; 객체(Objects) //one of the JavaScript's data types. //a collection of related data and/or functionality. //Nearly all objects in JavaScript are instances of Objets. //object = { key : value }; //오브젝트는 키와벨류의 집합체 //변수에 접근가능한 property 와 값의 집합 1. 변수에 넣은 변하지 않는 데...
  • 웹지기 02-14 572 0 0 댓글 0
  • 54 [ javascript ] 클래스 정의 및 사용
  • 객체지향 프로그래밍(Object-oriendted programming) class: template object: instance of a class JavaScript classes - introduced in ES6 - syntactical sugar over prototype-based inheritance js파일 상단에 선언(오류체크) 'use strict'; 1. 클래스선언(Class declarations) class Person {...
  • 웹지기 02-11 637 0 0 댓글 0
  • 53 [ javascript ] 함수의 또다른 기능
  • 함수의 또다른 기능 함수는 다른 변수처럼 사용된다. 변수에 값으로 할당 할 수 있다. 다른 함수에 인수로 전달 가능 다른 함수에 의해 반환될 수 있다. 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 func...
  • 웹지기 02-11 519 0 0 댓글 0
  • 열람중 [ javascript ] 함수 선언 , 사용법
  • 함수(Function) 프로그램을 구성하는 빌딩블럭 서브프로그램이라고도 불리며 여러번 재사용이 가능 한가지의 작업이나 값을 계산할 때 사용 -fundamental building block in the program -subprogram can be used multiple times -performs a task or calculates a value 1. 함수 정의(Function declaration) function 함수명(파라미터1, 파라미터2) {비지니스로직.......
  • 웹지기 02-11 522 0 0 댓글 0
  • 50 [ javascript ] 자바스크립트 변수 선언( var, let, const 차이)
  • ※ 자바스크립트 변수 선언 - 변수(Variables)는 변하는 데이터(값)를 저장할 수 있는 메모리 공간. - 변수에 데이터 값은 한개만 저장되므로, 같은 변수를 두번 사용하게 되면 나중에 입력된 변수값으로 저장된다. - 변수의 첫글자에 사용할 수 있는 문자들은 $, _ (언더바), 영문자 만 사용가능 - 변수 선언시 'use strict'; 선언을 통해 오류를 보여주고 방지하자. 변수선언( var = function-scoped ) var 변수명; var 변수...
  • 웹지기 02-09 757 0 0 댓글 0
  • 49 [ javascript ] 자바스크립트 코드 작성시 주의 사항
  • javascript 는 대문자와 소문자를 구분한다. 코드가 끝났으면 ; 을 통해서 라인이 끝났다고 표시를 해준다. 가독성을 위해 코드는 한줄씩 사용하는게 좋다. 문자형 데이터를 작성할 때는 " 와 ' 를 사용해서 한다. 중복될 때는 \를 사용해서 사용한다. 문자 사잉에 "와 " 겹치지 않게 사용해줘야 한다. document.write("동해물과 " 백수산이 " 마르고 닳도록 "); //오류구문 docume...
  • 웹지기 02-09 489 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
324
어제
13,749
최대
24,117
전체
4,664,587

그누보드5
Copyright © funyphp.com. All rights reserved.