작성
·
287
0
해당 문장을 작성해보았습니다.
1. use strict 없을 때
없을 때는 정상적으로 동작하고,
신기했던 점은 with문의 표현식 안에 있는 value가 객체 전체를 반환하는 것이 아니라 객체 내부의 프로퍼티에 직접 접근해서 프로퍼티를 반환했습니다.
언뜻 편할 것 같지만, 다른 개발자가 이 코드를 봤을 때 정확히 무엇을 매개변수로 받아들이고 있는지 모른다면, 모호할 수 있는 문장이라고 생각이 들었습니다.
2. "use strict"가 있을 때
그리고 "use strict"를 사용하니 이런 에러가 발생했습니다.
스트릭트 모드에서는 with문을 포함하지 않는다는 문구인 것 같은데, 위의 문장의 모호성 때문에 ESLint에서는 with문을 사용하지 못하도록 문법이 바뀐 걸까요?
조금 신기합니다.
답변 1
1
그렇습니다.
strict 모드에서는 with 문을 사용할 수 없도록 바뀌었습니다.
이유에 대해서 중고급 강좌에서 다룹니다.
----------
기본 강좌에서 다룹니다만, let sampleObj = {} 형태는 let보다 const를 사용합니다.