키워드 없이 변수를 선언할 때 ReferenceError: (변수이름) is not defined 에러가 나는 경우와 나지 않는 경우

자바스크립트에서는 제가 알기로 키워드 없이 선언된 변수에 대해서도 허용되는 것으로 알고 있습니다만

예를 들어

freedom = 1;

console.log(freedom);

이라는 코드로 크롬 브라우저 콘솔 창에서 실행했을 경우에는 허용이 되는 반면,

노드 런타임 환경에서 실행했을 경우에는 ReferenceError: freedom is not defined이라는 에러가 뜨며 실행이 되지 않습니다.

그 이유가 무엇일까요?

너무 오래된 글이라 이미 아셨겠지만, 비슷한 질문을 올릴 누군가를 위해 남겨놓습니다. 말씀하신대로 기존 Javascript에서는 var 키워드 없이 변수명만 써도 동작했습니다.

자바스크립트도 발전해오면서 strict mode(엄격모드)라는 것이 생겼습니다. node에서는 기본값일겁니다. 이것을 활성화하게 되면 정의되지 않은 변수에 값을 할당하는 것을 막습니다.