개발/프론트 2

javascript identifier '변수명' has already been declared 해결 방법, switch문의 block-scope 변수 선언.

목차 identifier 오류 내용 identifier '변수명' has already been declared 원인 1. ES5 까지는 var 를 사용했지만, ES6 부터는 var 대신 let 과 const 를 사용. var : 중복 선언 가능, 재할당 가능, 함수 레벨 스코프 let : 중복 선언 불가능, 재할당 가능, 블록 레벨 스코프 const : 중복 선언 불가능, 재할당 불가능, 블록 레벨 스코프 var let const 중복 선언 O X X 재할당 O O X 스코프 함수 레벨 블록 레벨 블록 레벨 블록 레벨 스코프 : 모든 코드 블록 ( 함수, if문, switch문, try/catch문 등 ) 내에 선언된 변수는 코드 블록 내부에서만 사용할 수 있다. 함수 레벨 스코프 : 함수 내에서 선언..

개발/프론트 2023.12.20

아이폰 사파리에서 window.open 또는 form _blank 로 새 창이 안열리는 문제 해결

목차 원인 safari에서는 비동기 호출 후 window.open 또는 form _blank로 새 창을 열 경우 열리지 않는다. 사파리는 비동기 콜 안에서 window.open으로 연 팝업을 차단한다고 한다. 해결 방법 방법 1. 사파리 설정에서 팝업 차단 해제하기 설정 -> safari -> 팝업 차단 해제 방법 2. 비동기 콜 전에 window.open 먼저 하기 * 문제가 되는 코드 // 예시 1 // 비동기 콜 호출 후 open const result = await getData(); window.open("https://naver.com"); // 예시 2 // 비동기 콜 응답 받은 후 open axios.getData("/api") .then(function (response) { window..

개발/프론트 2023.12.20
1