2011-08-30 8 views
0

이것은 호기심에 불과합니다. 그러나 그것은 내가 알고 싶습니다.자바 스크립트 함수 수준 범위

나는 let 키워드로 Javascript 1.7 지원 블록 범위 지정을 알고 있습니다.

하지만 왜 block scope 대신 function-level 범위로 Javascript가 시작 되었습니까?

+2

왜 ... 시간에 의해 var는, 기능 수준 범위의 가정이 이미 사양과 언어의 구현에서 입지를 굳힌이되었다 추가 된 상상? 원래 설계자와 구현자가 무엇을 생각하고 있었는지 어떻게 알 수 있습니까? – delnan

+0

어딘가에서 시작해야했기 때문에? – deceze

+0

@deceze 그래서 어디에서 시작하든 중요하지 않습니다. 중요한 것은 당신이 시작한다는 것입니다! – user278064

답변

1

언어의 가장 초기 반복에는 var 키워드가 없지만 할당시 암시 적으로 생성되는 변수에 의존한다고 합리적으로 추측 할 수 있습니다 (그러나 추측에만 해당). 이것은 단순한 스크립팅 언어에서 흔히 볼 수 있습니다. 많은 언어가 성숙 해짐에 따라 명시적인 선언 메커니즘을 개조하고 대규모 프로젝트에 사용되기 시작해야합니다. 이 가정에서, 순서 a의 암시 적 선언 대신 경고에서 볼 수있는의 중괄호에 의해 갇혀한다면 그것은하지 않을 것 같은

if(bla bla bla) { 
    a = 24 ; 
} else { 
    a = blop.blop(); 
} 
alert(a); 

으로 코드. 따라서 함수 수준 범위.

지금

+0

@ Markholm 나는 추측을 좋아한다. :) – user278064