JavaScript에서 블록 범위 변수 선언에 'let'이라는 이름이 선택된 이유는 무엇입니까?
나는 왜 var
그 이름을 취하는 지 이해합니다 -그것은 가변적입니다 const
-그것은 상수이지만,의 이름 뒤에 의미가 무엇 let
입니까? 순리에 맡기다?
Scheme 및 Basic과 같은 초기 프로그래밍 언어에서 채택 된 수학적 진술입니다. 변수는 더 높은 수준의 추상화에 적합하지 않은 저수준 엔티티로 간주되므로 Clojure, F #, Scala와 같이 유사하지만 더 강력한 개념을 도입하려는 많은 언어 디자이너의 요구에 let
따라 값이나 할당 가능한 변수, 그러나 변경되지 않았으므로 컴파일러는 더 많은 프로그래밍 오류를 포착하고 코드를 더 잘 최적화 할 수 있습니다. JavaScript는 var
처음부터 가지고 있었기 때문에 다른 키워드가 필요 했고 가능한 한 let
가까운 키워드로 이미 기존 키워드로 사용하는 수십 개의 다른 언어에서 빌려 왔습니다 var
. JavaScript let
에서는 블록 범위 로컬 변수가 대신 생성됩니다.
나는 그것이 수학적 전통을 따른다고 생각합니다. 수학에서 종종 "x는 임의의 실수"또는 이와 비슷하다고합니다.
에 추가 exebook의 반응 , 키워드의 수학 사용 하자 도 잘의 범위 지정 의미 캡슐화 let
자바 스크립트 / ES6 사용할 때를. 특히, 다음 ES6 코드가 중괄호로 할당을 무시 toPrint
하고 값을 인쇄하는 것처럼 'Hello World'
:
let toPrint = 'Hello World.';
{
let toPrint = 'Goodbye World.';
}
console.log(toPrint); // Prints 'Hello World'
하자 공식화 수학 (증거 특히 쓰기)에서 사용 된 변수의 현재 인스턴스가 아니라 논리적 인 생각의 범위에 있다는 것을 나타냅니다. 다음 예에서 x는 새로운 아이디어를 입력하면 즉시 새로운 정체성을 얻으며 (보통 이들은 주요 아이디어를 증명하는 데 필요한 개념 임) 하위 증명이 끝나면 즉시 이전 x로 되돌아갑니다. 물론 코딩에서와 같이 다소 혼동되는 것으로 간주되므로 일반적으로 다른 변수의 다른 이름을 선택하면 피할 수 있습니다.
x를 그렇게 보자 ...
증거물
새로운 아이디어 {x를 다른 무언가로하자 ... 무언가를 증명해라} 새로운 아이디어를 맺다
오래된 x로 주요 아이디어 증명
var
범위 차이로 정확히 무엇을 합니까? 이제 이름 var
이 이미 사용되었으므로 이름을 사용할 수 없습니다 .
그래서 그것은 흥미로운 영어 구성에서 의미를 가진 다음으로 최고의 이름을 얻은 것으로 보입니다.
let myPet = 'dog';
영어로 "내 애완 동물이 개가되게하자"
가장 가능성있는 가능성은 가장 관용적 인 선택이었습니다. 말하기는 쉬울뿐만 아니라 이해하기도 직관적입니다. 어떤 사람들은보다 더 논쟁 할 수 var
있습니다.
그러나 나는 이것에 대한 역사가 조금 더 있다고 생각합니다.
에서 위키 백과 :
Dana Scott의 LCF 언어는 람다 미적분학을 현대 기능 언어로 발전시키는 단계입니다. 이 언어는 그 이후로 대부분의 기능적 언어로 등장한 let 표현을 도입했습니다.
ALGOL 및 Pascal과 같은 상태 전체 명령 언어는 기본적으로 let 구조를 구현하여 제한된 범위의 기능을 블록 구조로 구현합니다.
나는 이것이 let
자바 스크립트 에서도 영감이되었다고 믿고 싶습니다 .
나는 Scheme에 대한 JavaScript의 빚이 명백하다고 생각합니다. 구성표에는 let뿐만 아니라 let *, let * -values, let-syntax 및 let-values도 있습니다. (4 번째 Ed. Scheme Programming Language 참조).
(이 선택은 JavaScript가 Lispy라는 개념에 더 많은 신뢰를 부여하지만, 우리가 없애기 전에는 호모 닉이 아닙니다.)))
var는 함수 범위 또는 전역 범위 인 반면보다 즉각적인 블록 수준의 제한된 범위를 사용합니다.
그것은 많은 다른 언어에서 BASIC과 같은 변수를 정의하기 위해 다른 많은 언어에서 발견 되었기 때문에 가장 많이 선택된 것으로 보입니다.
'IT' 카테고리의 다른 글
약한 머리 보통 양식은 무엇입니까? (0) | 2020.03.23 |
---|---|
도커 컨테이너 내에서 SSH 키 사용 (0) | 2020.03.23 |
PHP 5.2.8에서 두 개의 DateTime 객체를 어떻게 비교합니까? (0) | 2020.03.23 |
Javascript에서 기본 가져 오기의 별칭을 어떻게 지정할 수 있습니까? (0) | 2020.03.23 |
iframe은 '나쁜 습관'으로 간주됩니까? (0) | 2020.03.22 |