홈>
이 코드는 출력을 0으로 기록합니다. 출력은 6이어야합니다.
function sum(a,b){
r=a+b;
return r;
}
r=sum(2,9);
r1=sum(1,4);
diff=r-r1;
console.log(diff);
-
답변 # 1
-
답변 # 2
var
를 사용해야합니다 변수를 선언 할 때.var
를 사용하지 않음 암시 적으로 전역 변수를 작성 중입니다.function sum(a,b){ r=a+b; // This ends up being a reference to the same `r` as below return r; } r=sum(2,9); // This creates a global variable called r and sets it to 11 r1=sum(1,4); // This sets global `r` to 5 (because of the r=a+b in sum() diff=r-r1; // 5 - 5 is 0 console.log(diff);
대신 대신 :
function sum(a,b){ var r=a+b; // Now this r is local to the sum() function return r; } var r=sum(2,9); // Now this r is local to whatever scope you are in var r1=sum(1,4); var diff=r-r1; console.log(diff);
-
답변 # 3
r
sum
의 내부와 외부에 언급 . 그런 다음 로컬 변수는 아니지만 함수 외부에 존재합니다.sum
에 전화r
의 이전 값을 덮어 씁니다. .r1=sum(1,4);
특히r
를 설정합니다 그리고r1
5
로 그래서diff
그러면0
가 될 것입니다 -
답변 # 4
이것은
내부에 변수 r을 선언하지 않았기 때문입니다.var 키워드를 사용한 함수입니다. 전역 범위에 있습니다.
이 r1 = sum (1,4)를 수행하면 r의 값이 다음으로 재정의됩니다.
5이고 r1의 값도 5입니다. 따라서 r-r1의 차이는
0이됩니다.
이를 피하기 위해 var 키워드를 사용하여 함수 내부에 r을 선언 할 수 있습니다.
function sum(a,b){ var r=a+b; return r; } r=sum(2,9); r1=sum(1,4); diff=r-r1; console.log(diff);
이것이 도움이 될 것입니다.
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- vue.js - axios를 사용하여 서버에 이미지를 업로드하는 방법
- python - 문자열에서 특정 문자 제거
var
를 사용해야합니다r
를 선언하면 키워드 기능 내에 로컬 변수가 없으면범위 충돌및r
가 발생합니다 함수 내부는 전역 적으로 선언되고r
와 동일한 변수로 간주됩니다. 함수 외부의 변수 :이것이 도움이되기를 바랍니다.