Front-end/Javascript

(JavaScript)함수

doheun 2023. 2. 23. 17:49
반응형

함수

선언적 함수

functioin키워드를 사용하여 함수를 정의

function func01(){
    console.log("선언적 함수");
    func01_2();
    }
function func01_2(val1,val2){
    console.log(val1+val2);
}
  • 다른 객체에서 호출이 가능
  • 파라미터의 개수가 달라도 해당 파라미터를 사용하지 않을 경우 정상 작동함
  • 코드의 가독성이 높고 재사용하기 쉬움

익명함수

이름이 없는 함수

  • 함수를 변수에 할당할 때
  • var add = function(a, b) { return a + b; }; var result = add(2, 3); console.log(result); // 5
  • 다른 함수의 매개변수로 전달 할 때
  • function calculate(func) { var result = func(2, 3); console.log(result); } calculate(add); // 5
  • 객체 내부에서 사용되고 종료 (이름이 없기 때문에 다른 객체에서 호출불가)
  • 변수에 저장해서 변수이름으로 호출가능 : 변수명()
  • 파라미터로 기능을 전달할 때 익명함수로 가능
  • 화살표 함수 사용가능
setInterval(function(){
            console.log(i++); 
            },2000);

//화살표함수
setInterval(()=>{  
            console.log(i++);  
            },2000);
  • 함수를 동적으로 생성가능
  • 다른함수의 매개변수로 전달하여 사용가능
  • 가독성이 떨어지므로 가능한 선언적 함수사용하는 것이 좋음

onload 이벤트

  • 문서가 로드될 때 발생하는 이벤트
  • HTML문서의 body태그나 img태그와 같은 요소에서 사용가능(이벤트 발생시 지정함수 호출)
//html
<body onload="loadImage()">
      <img src="example.jpg" id="myImage">
</body>

//javascript  
function loadImage() {  
    var img = document.getElementById("myImage");  
    console.log("이미지가 로드되었습니다.");  
}

myImage라는 id를 가진 객체요소를 생성하고 콘솔창에 메세지를 출력

객체를 만드는 방법

  1. 객체 리터럴 방식 : 중괄호를 사용하여 객체를 생성
var jobj={
        subject:"javascript",
        credit:1,
        printout:()=>{
            return joobj.subject+","+jobj.credit+"학점";
            }

장점

  • 코드가 간결하고 가독성이 좋습니다.
  • 객체를 간편하게 생성할 수 있습니다.
  • 단점
  • 객체를 생성하는 데 있어서 유연성이 떨어집니다.
  • 생성된 객체들이 동일한 구조를 갖게 됩니다.
  1. 생성자 함수 방식: 함수를 사용하여 객체를 생성
function Info(){
    var subject="html";
    this.subject2="javascript";
    this.credit=2;
    this.printout=function(){
        return this.subject2+','+this.credit+'학점';
        }
        this.getSubject=subject;
}

var info=new Info();

장점

  • 생성된 객체들이 동일한 구조를 갖지 않습니다.
  • 객체를 생성하는 데 있어서 유연성이 높습니다.
  • 단점
  • 코드의 중복이 발생할 수 있습니다.
  • 생성자 함수를 정의하고 사용하는 방법이 복잡할 수 있습니다.
  1. 클래스 방식(ES6이상) : 클래스를 사용하여 객체를 생성
class Person{
    constructor(name,age){
        this.name=name;
        this.age=age;
      }
    sayHello(){
        console.log(this.name+ " "+ this.age);
    }
}

let person1=new Person("aaaa",20);

장점

  • 객체를 생성하는 데 있어서 유연성이 높습니다.
  • 코드가 간결하고 가독성이 좋습니다.
  • 단점
  • ES6 이상에서만 지원되기 때문에 구 버전의 브라우저에서는 사용할 수 없습니다.
  • 클래스를 정의하고 사용하는 방법이 생성자 함수 방식과 다를 수 있습니다.

 

반응형

'Front-end > Javascript' 카테고리의 다른 글

(JavaScript)DOM -appendChild,insertBefore  (0) 2023.03.03
(JavaScript)DOM탐색 속성  (0) 2023.03.02
(JavaScript)window객체-open,close  (0) 2023.02.28
(JavaScript)날짜 객체  (0) 2023.02.27
(JavaScript)로또  (0) 2023.02.27