Var 대 자바 스크립트 떠나기

| | |

ECMAScript6(ES6)이 출시되면서 JavaScript 언어에 새로운 기능이 추가되었습니다. 이러한 특성 중 하나는 변수 선언 방식에 영향을 줍니다. letconst가 추가되면서 각각의 변수 선언을 언제 사용해야 하는지에 대한 온갖 질문이 쏟아졌습니다.

여기서 이 기사에서는 JavaScript 환경에서의 정의 및 사용과 관련하여 각 옵션에 대해 설명합니다.

Pre-ES6: Var

ES6 릴리스 이전에는 변수는 var 의 선언이었습니다.

변수를 오류 없이 다시 선언하고 업데이트할 수도 있습니다.

var의 첫 번째 문제는 분명합니다. 변수에 이미 같은 이름이 지정된 경우 재선언으로 인해 코드에 버그가 발생할 수 있습니다. 무언가가 다시 선언되고 변수 이름이 코드베이스에서 이미 사용되었다는 사실을 깨닫지 못한 경우 의도하지 않은 결과가 발생할 수 있습니다. 이와 함께 범위 및 해제와 관련하여 다른 특성도 발생합니다.

범위

범위는 무엇을 알려줍니다. 변수를 사용할 수 있습니다. 전역 또는 로컬 범위의 변수가 있습니다. 동일한 변수 선언이 있지만 전역 변수이고 다른 변수 선언은 로컬이면 어떻게 됩니까?

var가 함수 외부에 선언되면 전역적으로 사용할 수 있습니다. 함수에서 "hello" 가 선언되면 함수 또는 로컬 범위가 있는 함수에서만 사용할 수 있습니다.

변수 선언은 같지만 범위가 다른 경우 helloWorld() 를 호출하더라도 함수의 var는 전역 var의 할당을 변경하지 않습니다. var는 이름이 "hello"인 함수에서 선언되었기 때문에 대체 정의의 전역 범위 내에 있는 것으로 보이지 않습니다.

호이스트

JavaScript에서 변수가 호이스트되면 함수 및 변수 선언은 코드 실행 전에 해당 범위의 시작 부분으로 이동됩니다. 변수가 선언되었지만 초기화되지 않았으므로 변수의 초기값이 정의되지 않았습니다.

여기서 "hello"가 호이스트되어 도달 범위의 맨 위에 선언됩니다. 따라서 기본적으로 컴퓨터는 다음과 같이 코드를 해석합니다.

자바스크립트 엔진은 hello가 존재한다는 것을 알지만 다음 단계까지 hello가 어떻게 정의되는지 알지 못합니다.

결국 ECMAScript 표준을 만드는 데 도움을 준 개발자 var에 시간과 돈을 들일 수 있는 몇 가지 사소한 문제가 있음을 깨달았습니다. 그래서 그들은 더 엄격한 키워드를 만들기로 결정했습니다. 이로 인해 ES6에서 "leave"와 "cost"가 생성되었습니다.

ES6:. Let

let 키워드는 여러 면에서 var 키워드와 매우 유사합니다. 주요 차이점은 오류가 반환되는 방식과 각 키워드의 범위가 정의된다는 것입니다.

let 키워드로 선언되고 초기화된 변수는 재할당할 수 있지만 재선언할 수는 없습니다.

자바스크립트 콘솔에서 위의 코드를 실행하면 마지막 줄에 오류가 반환됩니다.

SyntaxError: The identifier ` hello`는 이미 선언되었습니다.

var와 달리 let을 사용하여 변수를 선언하면 선언을 허용하지 않습니다. 변수 이름. 그러나 위의 예와 같이 원하는 경우 재할당할 수 있습니다.

범위

Champ-wise, let와 매우 유사합니다. >var. 전역 또는 로컬 범위가 제공하는 규칙 외에도 let에는 추가 제약 조건이 있습니다. 코드 블록에서 선언된 변수는 해당 코드 블록에서만 사용할 수 있습니다. 이는 기능 범위와 유사합니다. 기능은 해당 기능 내에 별도의 블록을 포함하여 더 멀리 전달할 수 있는 코드 블록입니다.

이 코드에는 오류가 없습니다. 왜냐하면 hello의 두 인스턴스는 범위가 다르기 때문에 별도의 변수로 취급됩니다.

호이스팅

호이스팅은 let 및 var 선언이 유사한 또 다른 영역입니다. "Var"가 발생하면 정의되지 않은 것으로 초기화됩니다. 그러나 "leave"는 초기화되기 전에 사용하려고 하면 참조 오류가 발생합니다.

let 키워드는 구문 측면에서 가장 좋은 선택입니다. 초기화 과정 전에 변수를 다시 선언하거나 사용하려고 하면 오류가 발생하기 때문입니다.

ES6: Const

const 키워드는 let 키워드 보다 더 엄격한 지침. const를 사용하면 변수를 선언하거나 재할당할 수 없습니다. const에 재할당하려고 하면 TypeError가 생성됩니다.

즉, 개체 또는 배열로 작업할 때 개체 또는 배열의 속성이 업데이트될 수 있습니다. 객체 또는 테이블의 기본 구조가 변경되지 않는 한 언제든지 업데이트할 수 있습니다.

예제에서 볼 수 있듯이 새 속성 집합에 작업을 재할당하면 TypeError: Assignment to constant variable. 오류가 발생합니다. Const는 개체의 고유 속성을 업데이트하는 경우를 제외하고 재할당하거나 다시 선언할 수 없습니다.

범위 및 리프트

let 키워드와 마찬가지로 const 는 범위 블록이며 호이스트될 때 초기화되지 않습니다. , 그래서 초기화 전에 사용하려고 하면 오류가 발생합니다.

const 키워드는 " not use more 이것은 변수를 전송하거나 업데이트해야 할 때입니다.

결론

이 기사에서는 let, var의 차이점을 살펴보았습니다. >비용 . 현재 보유하고 있는 모든 키워드 중에서 필요한 경우가 아니면 var를 사용하지 않는 것이 가장 좋습니다. 대신 let 또는 const를 사용하세요.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method