U9nzxdjhgbxvpserb7o0
codegrow
  • 2016.4.15 14:40
  • 조회수 94
  • 답변수 0
U9nzxdjhgbxvpserb7o0
codegrow
  • 2016.4.15 14:40
  • 조회수 94
  • 답변수 0

질문 있습니다.~

function shadowing_example(){
var val = 0; // 한 함수 안에서만 값이 유지되는 변수
console.log("F", val); // 0
val++;
}
var val = 0; // 여러 함수에서 값이 유지되면서 사용되는 변수
shadowing_example();
console.log("o", val); // 0
console.log("o2", val); // 0

Q1. 순차적으로 실행 되기 때문에
val++; 에서 val =1 이 되더라도 전역함수인 var val=0; 에서 다시 초기화 되고
console.log("o", val) 에서 출력 값이 0 이 되는 건가요?

function shadowing_example(){
console.log("F", val);

val++;
}
var val = 0;

shadowing_example(); // 0
console.log("o", val); // 1

동영상 초반 부분에 보면 fucntion안에 지역변수가 없어서
shadowing_example()이 실행 됬을 때! console.log("F",val);은 전역함수를 끌어다가 쓰는 거라서 0 이 되고
이후 순차적으로 실행 되기 때문에 val++ 이 남아 있어서 1을 출력 하는 건가요?
근데 순차적으로 생각 해보면 제가 Q1 에 질문 한 내용이라 또 말이 맞지가 않는데..

val ++; 은 어떻게 되는 건지 궁금합니다.

Q2. 여러 함수에서 값이 유지되면서 사용되는 변수라는건... 만약에 (아래 함수추가)

function shadowing_example(){
var val = 0; // 한 함수 안에서만 값이 유지되는 변수
console.log("F", val); // 0 ( var val =5 면 출력 값 5 )
val++;
}
var val = 0; // 여러 함수에서 값이 유지되면서 사용되는 변수
shadowing_example();
console.log("o", val); // 0
console.log("o2", val); // 0

function shadow_two (){
console.log("two", val);
val++;
}

이렇게 function 안에 지역함수가 없는 경우에 var val=0 (전역함수)를 여러함수에서 사용 할 수 있다는 말씀이신가요?

  • #자바스크립트 입문
  • #변수의 shadowing

0 답변

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.