자바스크립트에서는 제가 알기로 키워드 없이 선언된 변수에 대해서도 허용되는 것으로 알고 있습니다만
예를 들어
freedom = 1;
console.log(freedom);
이라는 코드로 크롬 브라우저 콘솔 창에서 실행했을 경우에는 허용이 되는 반면,
노드 런타임 환경에서 실행했을 경우에는 ReferenceError: freedom is not defined이라는 에러가 뜨며 실행이 되지 않습니다.
그 이유가 무엇일까요?
자바스크립트에서는 제가 알기로 키워드 없이 선언된 변수에 대해서도 허용되는 것으로 알고 있습니다만
예를 들어
freedom = 1;
console.log(freedom);
이라는 코드로 크롬 브라우저 콘솔 창에서 실행했을 경우에는 허용이 되는 반면,
노드 런타임 환경에서 실행했을 경우에는 ReferenceError: freedom is not defined이라는 에러가 뜨며 실행이 되지 않습니다.
그 이유가 무엇일까요?
너무 오래된 글이라 이미 아셨겠지만, 비슷한 질문을 올릴 누군가를 위해 남겨놓습니다. 말씀하신대로 기존 Javascript에서는 var 키워드 없이 변수명만 써도 동작했습니다.
자바스크립트도 발전해오면서 strict mode(엄격모드)라는 것이 생겼습니다. node에서는 기본값일겁니다. 이것을 활성화하게 되면 정의되지 않은 변수에 값을 할당하는 것을 막습니다.