내부 변수와 동일한 이름을 가진 전역 변수 x가 있습니다. 테스트 함수를 실행할 때 전역 변수와 동일한 함수도 실행합니다 이 함수는 함수의 이름과 동일한 이름을 가진 변수에 assigns 값을 포함합니다. 다음 줄에 x의 값을 알리면 2로 경고하지만 테스트 함수를 실행 한 후에는 경고 할 때 x는 여전히 10 ... y라고 경고합니다.javascript : 동일한 변수 이름과 함수 이름
eg
var x =10; //assigns value 10 to global variable x
function test(){
function x() {
x = 2; //assigns value x
alert(x); // x =2
}
x(); //calls x
}
test(); //call function test
하지만 당신은 경고 X, 다음 10 ... 를 제공하는 경우 왜 이런; 이
var y =10; //assign value 10 to y
function test(){
function x() {
y = 2; //assign value 2 to y
alert(y); //alerts y is 2
}
x(); //call the function x
}
test(); //call the test function
좋아해요와 y를 선택하면 다음 또한 2 .. 이 둘 사이의 차이는 무엇 인 경우
가와 .. 나는 두 번째의 행동을 알고 .. 은 그러나 첫 번째 것에 대해서는 전혀 모릅니다 ...
함수 이름과 일치하는 변수 이름이있는 이유가 있습니까? –
수신 된 지혜는 'i'또는 'x'를 사용하지 않고 더 많은 의미를 지니고 있다는 것입니다. 식별자를 복제하는 것만 빼면 어떻게 읽을 수 있습니까? 처음에 합리적인 이름을 선언했다면이 질문으로 시간을 낭비하지 않았을 것입니까? 아니면 구멍을 고르려고하십니까? –