WEB2 - JavaScript

함수

함수의 기본

소스코드

변경사항

 

 

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

소스코드

변경사항

 

 

리턴

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

소스코드

변경사항

 

 

댓글

댓글 본문
  1. 호록이
    [Completed] 2024.08.22 (목)
  2. 김진현
    2024.07.02 완료!
  3. 남윤서
    2024.07.01 완료
  4. 야생의코린이
    2024-05-10 완료
  5. 이사야
    2024-05-10 완료!
  6. beginner
    20240323
  7. 안제경
    2024.03.01
  8. 김현지
    2024.2.24
  9. 레나
    2023.02.11 완료
  10. Sansol Park
    2. return 키워드는 함수의 결과를 반환하는데 사용됩니다. 함수는 일련의 작업을 수행하고, 그 결과를 반환하여 그 값을 이용해 다른 작업을 수행하는 데 사용할 수 있습니다. return을 사용하지 않으면, 함수는 작업을 수행하기만 하고 결과를 반환하지 않습니다. 따라서 함수의 결과를 이용해 다른 작업을 수행하려면 return을 사용해야 합니다.
    예를 들어, 다음과 같은 함수가 있다고 가정해 봅시다.

    function add(a, b){
    return a + b;
    }

    var result = add(1, 2); // result는 3

    위의 경우, add 함수는 두 개의 인자를 받아 더한 결과를 반환합니다. 이런 식으로 return을 사용하면, 함수의 결과를 변수에 저장하거나, 다른 함수의 인자로 전달하는 등 다양한 방법으로 활용할 수 있습니다.

    반대로 return을 사용하지 않는다면, 함수는 작업을 수행하기만 하고 그 결과를 어디에도 전달하지 않습니다. 그래서 함수의 결과를 이용해 무언가를 하려면 return을 사용해야 합니다.

    GPT-4를 활용한 답변입니다.
    대화보기
    • Sansol Park
      1. 네 맞습니다.

      document.write('<div style="color:red">'+left+right+'</div><br>'); 이 코드를 실행하면, left와 right가 문자열로 간주되어 합쳐집니다. 예를 들어, left가 2이고 right가 3이라면, 결과는 "23"이 됩니다. 이는 자바스크립트에서 + 연산자가 문자열 연결에도 사용되기 때문입니다.

      반대로 document.write('<div style="color:red">'+ (left + right) +'</div><br>'); 이렇게 괄호를 사용하면, left와 right는 먼저 숫자로 더해진 후 그 결과가 문자열과 합쳐집니다. 따라서 left가 2이고 right가 3이라면, 결과는 "5"가 됩니다.

      따라서, left와 right를 숫자로 더한 결과를 원한다면, 괄호를 사용해야 합니다. 괄호를 사용하지 않는 것이 잘못된 것은 아니지만, 원하는 결과를 얻기 위해서는 적절한 방법을 선택해야 합니다.

      GPT-4를 활용한 답변입니다.
      대화보기
      • 므갱이
        2023.11.23 완료.

        1. 리턴 영상의 오타? 부분에 대해서... 아래와 같이 괄호를 사용하라 하심은

        document.write('<div style="color:red">'+ (left + right) +'</div><br>');

        이렇게 하라는 말씀이신가요?! 이렇게하면 5가 출력되긴하는데...


        2. return의 사용 이유를 잘 모르겠어요.....
        굳이.. 반환을 해야하는건가요?? 그냥 함수 안에 연산식? 넣으서 사용하면 그거대로 실행되는거 아닌가요?!
        이해가 잘 안됩니다 ㅠ
      • eunso
        20231016완료
      • 코딩두
        23.07.12 완료
      • 어흥
        23.06.25.
      • 파시
        23.5.29
      • 230521
      • awesome
        230517
      • 열공강아지
        4/4
      • 아아뜨아
        230402
      • 코딩척척석사
        2023.03.13
      • otcace
        23.03.09
      • webby
        23.03.06
      • 모카
        2023.02.15
      • 달수
        20230213 완료
      • Sansol Park
        실험 부분도 전체 코드를 같이 복사해서 보여주시면 더 좋을 것 같아요~

        실험
        1. 숫자(2)+숫자(3)+문자('3') = 33
        2. 문자('3')+숫자(1)+숫자(2)+문자('3') = 3123
        3. 문자('3')+숫자(1)+숫자(2) = 312
      • Sansol Park
        소스코드 부분 주석에 설명이 나와있네요.

        4:04초의 결과가 붉은색 5가 아닌 붉은색 23이 된 이유는 자바스크립트는 문자와 숫자를 더하면 숫자를 문자로 간주합니다. +를 덧셈이 아닌 문자 결합 연산자로 사용합니다. 그래서 2와 3이 결합되서 23이 된 것입니다. 아래와 같이 괄호를 사용해서 2와 3을 먼저 더해주셔야 합니다.
        // document.write('<div style="color:red">'+(left+right)+'</div><br>');
        대화보기
        • 메론소다맛젤리
          혹시나 저처럼 이런 의문을 가진 사람들이 있을 수도 있어서 남기는 기록입니다.
          document.write(1+1+'<br>');
          숫자+숫자+문자로 구성되어 있으며 2를 출력합니다.

          document.write('<div style="color:red">'+2+3+'</div><br>');
          문자+숫자+숫자+문자로 구성되어 있으며 빨간 23을 출력합니다.
          설명에서 javascript는 문자와 숫자를 더하면 숫자를 문자로 받아들이기 때문에 2와 3을 더한 5의 값이 아닌 23을 출력하는 것이라 했는데 위의 상황도 문자와 숫자를 더하는 것이라 납득하기 어려울 수도 있다고 생각합니다.

          그래서 저는 한 가지 가설을 정해두고 실험을 해보았습니다.
          가설 : 문자 사이에 존재하는 숫자의 덧셈은 숫자를 문자로 바꾼다.
          실험
          1. 숫자(2)+숫자(3)+문자('3') = 33
          2. 문자('3')+숫자(1)+숫자(2)+문자('3') = 3123
          3. 문자('3')+숫자(1)+숫자(2) = 312

          실험 결과가 가설대로 나오지 않아 가설을 "문자로 시작하는 숫자와의 덧셈은 숫자를 문자로 바꾼다."로 수정해봤지만 이러한 결과가 나오게 된 뚜렷한 원인을 알 수가 없었습니다. javascript가 덧셈을 읽을 때 가장 앞에 나타나는 datatype인 문자를 인식하고 다음에 나오는 값들을 문자로 인식한다는 추측만 있지만 앞으로 이러한 상황이 생겼을 때 어떤 원인이 작용하여 숫자를 문자로 인식하게 되었는지 알고 싶습니다.
        • 푸른초
          23.01.16.
        • 최대리
          2023.01.05 완료
        • 감자
          22.11.28 복습 다시 시작!
        • 박진병
          22.11.21
        • mona2
          감사합니다.
        • 코딩왕초보
          2022.11.03 복습
        • 드가자
          아 머리아파
        • 코딩드림
          221023
        • 엠제이
          10212022
        • 보통사람 박코딩
          할수있다
        • 221018
        • 코딩왕초보
          2022.10.14 return은 너무 어렵네요.
        • 서우
          221011
        • 김세나
          221003
        • 한승욱
          220930
        • 정하늘
          220924
        • OKKZZI
          22/9/22
        • 당당
          2022.09.18
        • gn0es
          22.09.01
        • 뿔고래
          함수가 return의 값으로 변신을 하게 되어서 함수를 값처럼 사용할 수 있게 되었다.
        • 헤밍웨이
          220810 감사합니다.
        • 열무
          document.write('<div style="color:blue;">'+(left+right)+'</div><br>');
          -> document.write(&#96;<div style="color:orange;"> ${left+right} </div>&#96;);