ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Day 29] 함수 & call by value
    TIL/멋쟁이사자처럼 FE스쿨 2기 2022. 5. 11. 01:46
    SMALL

    원래 모르는 내용 위주로 슥샥 정리하는 식으로 TIL을 적었지만,

    자스 진도 들어간 이후로 익숙하지 않은 내용이 점점 많아지기에....

    TIL의 내용이 점점 부실해져가고 있는걸 체감한다...ㅜㅜ

    나의 일기장(그만큼 막쓰는)인 걸 인정하고..ㅎ

    이제 배운 내용은 그냥 핵심 코드만 쏙쏙 기록하는 식으로 간략히만 적는 방식으로 바꾸려고 한다..!

     

     

    함수를 배우고 푼 오늘의 과제

    //화살표함수를 그냥 함수로 바꾸기
    let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
    
    let newData = arr.map(function(a){
        a.map(function(n) {
            return n*2
        })
    })
    //평균 구하는 함수 만들기
    
    let data = [10,20,30,40];
    
    function avg (arr){
        let sum=0;
        for (let i =0;i<arr.length;i++){
            sum+=arr[i];
        }
        return sum/arr.length;
    }
    
    console.log(avg(data))

     

     


    call by value

    핵심: 자바스크립트는 call by value 이다!!! (call by reference 노노)

     

    call by value란 한마디로 값을 전달하는 것!

    자바스크립트의 원시자료형은 변경불가능한 값이므로 값을 바꿔서 할당해도 복사하여 처리하기 때문에 원본은 변하지가 않는다.

    BUT

    참조형(객체형)데이터인 경우 원본 데이터가 변하는 경우가 있는데,

    이것은 실제로는 데이터가 변하는게 아니라,

    데이터의 주소를 복사하여 넘기는 것이기 때문에 call by value인 것이다.

    (실제로 변한다고 착각하는 경우가 있어 call by reference(직접 참조하여 원래 값이 바뀜)로 오해할 수 있다.)

     

    반응형

    댓글

Designed by Tistory.