객체 지향 JavaScript — 변수 모범 사례
지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.
JavaScript는 부분적으로 객체 지향 언어입니다.
JavaScript를 배우려면 JavaScript의 객체 지향 부분을 배워야 합니다.
이 기사에서는 변수의 범위를 살펴보겠습니다.
변수의 범위
JavaScript에는 ES6부터 블록 범위 변수가 있습니다.
let
또는 const
로 변수를 선언하는 한 블록 범위가 됩니다.우리는 쓸 수있다:
function foo() {
let local = 2;
}
블록 범위 변수 생성
local
.이것은 블록 내에서만 사용할 수 있습니다.
전역 변수를 생성할 수도 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
var x = 1;
최상위 수준에서 전역 변수를 생성합니다.
이는 호이스팅되어 스크립트 내 어디에서나 선언에 액세스할 수 있음을 의미합니다.
그러나 값은 할당된 후에만 사용할 수 있습니다.
var
최상위 수준에서 사용되는 전역입니다.이름 충돌을 피하기 위해 전역 변수를 생성하지 않아야 합니다.
블록 범위 변수는 블록 내에서만 사용할 수 있으므로 추적하기가 더 쉽습니다.
가변 호이스팅
변수 호이스팅은
var
변수로만 수행됩니다.예를 들어 다음과 같이 작성할 수 있습니다.
var a = 123;
그런 다음 다음과 같이 사용하면
var a = 123;
function foo() {
console.log(a);
var a = 1;
console.log(a);
}
foo();
a
의 첫 번째 로그는 undefined
입니다.그리고 두 번째 콘솔 로그는 1입니다.
이는 콘솔 로그가 함수 내에서
a
를 가져오기 때문입니다.var
는 함수 범위이며 값은 함수에서 가져옵니다.따라서 우리는 각각
undefined
와 1을 얻습니다.블록 범위
함수 범위 지정이 혼란스럽기 때문에 ES6은 블록 범위 변수를 도입했습니다.
let
및 const
를 사용하여 변수를 선언할 수 있습니다.그것들은 호이스팅되지 않으며
const
변수는 선언될 때 초기 값이 할당되어야 합니다.예를 들어 다음과 같이 작성할 수 있습니다.
var a = 2; {
let a = 3;
console.log(a);
}
console.log(a);
콘솔 로그의
a
는 3입니다.그리고 블록 외부의 콘솔 로그는
var
선언에서 2를 기록합니다.블록 범위 변수로 추론하는 것이 더 쉽기 때문에 모든 곳에서 사용해야 합니다.
변수를 만드는 규칙은
const
먼저 새 값에 할당할 수 없다고 생각하는 것입니다.변수에 새 값을 할당해야 하는 경우
let
를 사용합니다.그리고 우리는
var
를 사용하지 않습니다 .기능은 데이터입니다.
변수에 함수를 할당할 수 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
const foo = function() {
return 1;
};
그런 다음
foo
변수에 함수를 할당했습니다.이것을 함수식이라고 합니다.
그리고 우리가 쓴다면:
const foo = function bar() {
return 1;
};
그런 다음 변수에 함수 선언을 할당했습니다.
함수 내에서 원래 이름에 액세스할 수 있다는 점을 제외하고는 동일합니다.
따라서
bar
함수의 본문 내에서 이름 bar
를 얻을 수 있습니다.그러나 우리는 그것을 외부에
foo
로 부릅니다.typeof
연산자를 사용하여 'function'
유형을 값으로 반환합니다.우리가 가지고있는 경우 :
typeof foo
'function'
.결론
변수를 선언하려면
let
또는 const
를 사용해야 합니다.또한 변수에 함수를 할당할 수 있습니다.
Reference
이 문제에 관하여(객체 지향 JavaScript — 변수 모범 사례), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/object-oriented-javascript-variables-best-practices-45jf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)