JavaScript에서는 전역 변수가 전역적으로 선언된 후 동일한 이름을 가진 전역 개체의 속성이 됩니다. 그런데 함수에서 지역변수를 선언한 후에는 함수(객체)의 속성이 되지 않는데, 대신 "함수명.속성명"을 이용하여 선언해야 하는 이유는 무엇인가요?
다음과 같이 이해될 수 있습니다.
함수 내부에 선언된 변수는 함수 객체가 아닌 함수 실행 컨텍스트 객체에 속합니다. 전역 환경에서 선언된 변수는 전역 실행 컨텍스트 객체에 속하며, 이 컨텍스트 객체는 전역 환경 객체입니다
이유는 없습니다. 이것이 규칙입니다.
역사적 문제는 혼란을 없애기 위해 엄격 모드를 사용하는 것이 좋습니다.
이것을 의미한다면 `기능 테스트(){
}`//업데이트, 오류 수정. 질문자분께서 기본을 잘 보시고 계시네요.
이건 함수 변수의 범위 문제인 것 같아요. js는 정말 유연해서 함께 배워보면 좋겠어요^~^ ^~^
JavaScript에서는 전역 변수가 전역적으로 선언된 후 동일한 이름을 가진 전역 개체의 속성이 됩니다. 함수에서 지역 변수를 선언한 후에는 해당 함수의 속성인 로컬 객체가 되기 때문에 먼저 해당 함수에 전역적으로 접근한 후 함수 내의 지역 변수에 접근해야 합니다.
기능 범위
다음과 같이 이해될 수 있습니다.
함수 내부에 선언된 변수는 함수 객체가 아닌 함수 실행 컨텍스트 객체에 속합니다.
전역 환경에서 선언된 변수는 전역 실행 컨텍스트 객체에 속하며, 이 컨텍스트 객체는 전역 환경 객체입니다
이유는 없습니다. 이것이 규칙입니다.
역사적 문제는 혼란을 없애기 위해 엄격 모드를 사용하는 것이 좋습니다.
으아악이것을 의미한다면
으아악`기능 테스트(){
}`
//업데이트, 오류 수정.
질문자분께서 기본을 잘 보시고 계시네요.
이건 함수 변수의 범위 문제인 것 같아요. js는 정말 유연해서 함께 배워보면 좋겠어요^~^ ^~^
JavaScript에서는 전역 변수가 전역적으로 선언된 후 동일한 이름을 가진 전역 개체의 속성이 됩니다. 함수에서 지역 변수를 선언한 후에는 해당 함수의 속성인 로컬 객체가 되기 때문에 먼저 해당 함수에 전역적으로 접근한 후 함수 내의 지역 변수에 접근해야 합니다.
기능 범위