JavaScript 3

JSTL과 템플릿리터럴, text interpolation 충돌

text interpolation이 충돌하는 경우 jsp의 EL 표현식(${ ... }) 과 자바스크립트의 템플릿리터럴 문법(${ ... })이 우연히 똑같아서 발생하는 문제 해결방법 서버 컨트롤러에서 jsp에 넘겨준 값인 JSTL를, 자바스크립트 ES6부터 쓰이는 템플릿리터럴(``백틱)과 같이 사용하려면 바깥쪽 ${...} 안에 자바스크립트에서 해석할 코드를 집어넣어야한다. ${ ${...} } 바깥쪽 ${...} 은 서버에서 처리하고, 안쪽 ${...}는 자바스크립트가 처리하게 된다. 배운점 JSTL jsp 엔진은 java단에서 넣어준 데이터를 출력한다 jsp의 EL 처리과정 page, request, session, context 에서 "변수명"이 붙은 값을 찾음 null이면 아무것도 출력하지 않고..

개발 한 스푼 2023.11.30

for / for in / for of

for...in - JavaScript | MDN for...in문은 상속된 열거 가능한 속성들을 포함하여 객체에서 문자열로 키가 지정된 모든 열거 가능한 속성에 대해 반복합니다. (Symbol로 키가 지정된 속성은 무시합니다.) developer.mozilla.org for 루프문 for in length 가 필요없습니다. 객체의 각 속성 이름이 변수에 할당됩니다. const object = { a: 1, b: 2, c: 3 }; for (const property in object) { console.log(`${property}: ${object[property]}`); } // expected output: // "a: 1" // "b: 2" // "c: 3" 포인문은 배열이 아닌 객체를 위해 존..

Language/JavaScript 2022.12.15

호이스팅(Hoisting)

캠퍼스에서 다른줄 친구의 스터디준비 과정을 옆에서 참관하다가 약 30분 가량 같이 공부해버렸다.ㅋㅋ let, var, const로 시작해 스코프와 호이스팅까지~ 호이스팅(Hoisting) 함수 안에 있는 선언들을 모두 끌어올려서(hoist) 해당 함수 유효 범위(scope)의 최상단에 선언하는 것. MDN 정의 더보기 JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다. 반면 let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다. 호이스팅을 설명할 땐 주로 "변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상..

개발 한 스푼 2022.10.11