WEB2 - JavaScript

함수

함수의 기본

소스코드

변경사항

 

 

매개변수(parameter)와 인자(argument)

소스코드

변경사항

 

 

리턴

4:04초의 결과가 붉은색 5가 아닌 붉은색 23이 된 이유는 자바스크립트는 문자와 숫자를 더하면 숫자를 문자로 간주합니다. +를 덧셈이 아닌 문자 결합 연산자로 사용합니다. 그래서 2와 3이 결합되서 23이 된 것입니다. 아래와 같이  괄호를 사용해서 2와 3을 먼저 더해주셔야 합니다. 졸음강의를 찍은 것 같습니다 ㅠㅠ
document.write('<div style="color:red">'+left+right+'</div><br>');

소스코드

변경사항

 

 

댓글

댓글 본문
  1. 승뇽뇽
    ㅇㄹ
  2. 아자가자
    210727
    함수 완료

    26부터 듣기
  3. 고영히
    0727 완료
  4. labis98
    20210718
  5. 정용헌
    20210709
  6. 윤동욱
    2178
  7. 난해한 말이라니요 에이~ 덕분에 새로운 용어도 알고 좋았습니다. 부가 설명도 감사드려요~!!
    대화보기
    • B=loom
      2021.07.02
    • dorumang
      2021.07.02
    • Jeonghee Gwon
      20210702
    • 주니어개발자
      코드 스니펫 이라고 하면 보통 짧은 '코드 조각'을 뜻하는 말입니다 ㅎㅎ
      본문에 보이시는 소스코드처럼 작은 코드 뭉치라고 여기시면 될 것 같아요
      괜히 쓸데없는 난해한 말을 쓴 것 같네요

      기억이 가물가물한데
      본문 타이틀 중 "리턴" 에 이고잉님께서 빨간색 박스로 첨언을 해두신 바로 아래 보시면
      한 줄 짜리 코드가 있는데요

      문자열을 + 기호로 연결하는 경우라
      숫자 연산에 괄호 처리를 하지 않을 경우 문자로 취급해 연결하는 꼴이 되서 '23' 이라는 결과가 나오게 됩니다. 빨간 박스 내용에는 그 부분에 대한 언급을 해주셨어요.

      left + right 에서 숫자로 간주해 덧셈 처리를 하고자 하려면
      (left + right) 괄호 처리로 먼저 덧셈을 해주라고 말이죠.

      코드에는 괄호가 빠져있어서 댓글을 남겼던 것 같아요

      '<div style="color:red">' + left + right + '</div><br>'
      => 결과: <div style="color:red">23</div><br>
      => 이유: 모두 문자열로 취급해서 연결 시킴
      => '<div style="color:red">' + '2' + '3' + '</div><br>'


      '<div style="color:red">' + (left + right) + '</div><br>'
      => 결과 : <div style="color:red">5</div><br>
      => 이유 : 괄호부터 덧셈 처리된 결과로 문자열 연결
      => '<div style="color:red">' + '5​' + '</div><br>'
      대화보기
      • 우와...... 이 분이 어떤거 말하시는지 배움이 짧아 이해를 못하겠네요 ㅎㅎ
        egoing님께 부탁드리는 말이겠지만, 저도 이해하고 싶어서 댓글 읽어봤네요.

        스니펫이 뭔지 몰라 검색해 봤는데, 저런 창을 지칭하는 단어일까요?

        개발자 콘솔로 입력하는 것도 해봤는데 딱 위치가 옮겨지는데 이미 수정하셔서 제가 뭘 수정해야하는지 모르는 걸까요...?

        혹시 저처럼 궁금하신 분 이 댓글 풀이 좀 해주세요 ㅎㅎ
        대화보기
        • 김휘철
          잘봤습니다~
        • super1Nova
          210519
        • chimhyangmoo
          2차 - 21.05.09
        • 초딩 개발자
          2021/05/08
        • 스문
          21.04.30 완료
        • 별거
          2021.04.27
          function에 대한 재대로된 사용법
          return의 사용법
        • 그린
          210424 오ㅏㄴ료
        • 감사합니다~~~
        • 휴, 감사합니다
        • 요모
          2021-03-29
        • 김우중
          감사합니다
        • 단디
          완료
        • 뚜따띠또따
          21.03.24 완료!
        • 봉가리봉봉
          아!! 동영상앞에 빨간색 글이 있는걸 못봤네요.
          괄호를 하면 된다고 하셔서 괄호를 하니까 되네요.
          +(left+right)+ <----이렇게 ㅋ
          수 끼리 먼저 연산을 해주어야 한다는 말씀이군요.
          감사합니다!!
          대화보기
          • 봉가리봉봉
            감사합니다. 잘 봤습니다.
            질문이 있는데요. 주제에서는 좀 벗어났지만, return 영상에서 sumColorRed(2,3) 함수 실행시에
            출력이 빨간색 23 이 나왔는데요. 2+3=5가 나오기를 의도했잖아요?
            이걸 수정하려면 어떻게 해야할까요??
            함수 내부 표현식에서 문제가 생긴것 같긴한데... 궁금하네요...
          • You_S_B
            정리가 잘 된 댓글을 제가 보기위해 올립니다
            function sum(left, right){
            document.write(left+right);
            }

            이란 함수가 만들어져 있다고 한다면 sum이란 함수는 'left값과 right를 더한 값을 출력'하는 기능을 가진 함수입니다.

            따라서 sum()함수를 호출하면 5가 출력되지만, sum()이란 함수 자체가 5란 값을 가지고 있는 것은 아닙니다.

            그래서 sum()을 이용한 연산, 예를들어 sum(3,4)+6 이란 연산을 수행한다면 7+6의 연산결과가 나오는게 아니라

            7과 에러코드 하나가 발생합니다.

            sum()이란 함수를 이용하여 연산을 하고 싶을 경우에는 sum()함수 안에 return값을 부여해 주어야 합니다.
          • You_S_B
            와씨 감사합니다
            대화보기
            • 졸대
              완료!
            • gkalsdlf
              이 리턴이 왜 중요하단 건지 이해를 못했습니다 아직 경험이 없어서 그런가
            • rose_lex
              return이 적용이 안되서 에러 먹었나 소스코드 그대로 붙여넣기하니 잘되네요. 그래서 일단 다 지우고 차근차근 처음부터 꼼꼼히 입려하니 잘 됩니다. 오타가 났거나 제가 적용을 잘 못 한듯해요
            • natureH
              작성하신 sum2라는 함수를 보니, 다시 해당 값을 출력하는 return이 정의 되 지 않아서 그런거 아닐까요?

              function sum2(left,right){return left+right};
              sum2(2,3);

              으로 다시 해보시면 어떨까요?
              대화보기
              • 21.03.05 완료
              • function sum2(left,right){return left+right};
                sum2(2,3);
                대화보기
                • 비더베스트
                  웹에서 console 실행하고 function sum2(left,right){left+right};
                  sum2(2,3)

                  이렇게 실행하면 그냥 console에서 2+3 으로 처리되서 5로 출력될 것 같은데 undefined로 출력되네요. 함수의 ()괄호 안에 들어가는 변수 값이 혹은 함수의 {}안의 2+3의 출력값이 숫자 데이터가 아닌 다른 데이터로 인식되는 건가요? 뭔가 어렵군요 허헣
                • 진돌
                  2021.02.26 완료!
                • 노원신
                  이해한거 같으면서 이해가 안되는 상태이네요 ㅋ
                • 강정진
                  그나마 함수는 좀 이해되네요 ㅋㅋ
                • gelonso
                  아직 return에 대해서 100% 완벽하게 이해하진 못했지만, 댓글보고 혼자 계속 생각하면서 되니이니까 조금은 이해가 가는것 같아요!어렵지만 계속 복습해봐야겠어요!
                • 서준
                  완료! 23덕에 조금 헤맸네요!
                • 이론 꿋
                • 완료
                • Yohanesty
                  출석
                • 임찬혁
                  완료
                • hanel_
                  21.1.25
                • 푸른벚꽃
                  21.1.25
                • chimhyangmoo
                  2021.01.24
                • 몰댕
                  21.01.15
                • 걸어가는신사
                  2021.01.14
                버전 관리
                egoing
                현재 버전
                선택 버전
                graphittie 자세히 보기