undefined
은 with
으로 처리되며 null
은 수신 할 수없는 이유는 무엇입니까? 또한 var
은 (오류를 던질 수) 반면 let
은 덮을 수 있습니다.null이 허용되지 않는 이유는 무엇입니까?
그래서 변수를 재정의 할 수있는 규칙은 무엇입니까?
undefined
은 with
으로 처리되며 null
은 수신 할 수없는 이유는 무엇입니까? 또한 var
은 (오류를 던질 수) 반면 let
은 덮을 수 있습니다.null이 허용되지 않는 이유는 무엇입니까?
그래서 변수를 재정의 할 수있는 규칙은 무엇입니까?
undefined
미리 정의 된 글로벌 식별자이므로
var obj = {null:1,undefined:2};
with(obj) console.log(null,undefined);
null
리터럴이다.
var
은
keyword이지만
let
은 아닙니다 (느슨한 모드에서는
strict mode에 있음). (느슨한 모드에서는 표시되는 위치에 따라 키워드 또는 식별자와 같은 역할을합니다.)
undefined
은 키워드가 아닌 미리 정의 된 글로벌 주소입니다. 그 이유는 let
이 strict 모드의 키워드 일 뿐이 기 때문입니다. 언어가 처음 정의 된 후 20 년 만인 2015 년에 추가 된 것입니다.
재미있는 버그로 이어질 수있는 undefined (로컬)을 재정의 할 수도 있습니다 : http://jsbin.com/sesisogico/edit?js,console – amcdrmtt
나는'let' is isn 키워드가 아닙니다. 분명히'var let = 1'은 유효한 JavaScript입니다. 이전 버전과의 호환성을 유지하기 위해 그렇게 했습니까? –
@Derek 朕 會 功夫 : 예, 'let'은 느슨한 모드 코드에서만 식별자로 허용됩니다. strict 모드 코드에서'var let = 1'은 실패합니다. 새로운 키워드는 어쩔 수없이 이상적으로 만 문맥 적으로 추가됩니다 ('await'는'async' 함수 내의 키워드 일뿐입니다, 예를 들어'async'는 전혀 키워드가 아니며 단지 구문 적으로 정확한 위치), 그리고 영향의 범위를 결정하기 위해 야생에서 코드를 광범위하게 조사한 후에 만 가능합니다. –
여기에 코드를 입력하십시오. 우리가 당신을 도울 수없는 다른 지혜 .. –