자바스크립트(4)
-
[ JavaScript ] 호이스팅(hoisting) 이란?
호이스팅이란 자바스크립트 코드가 실행되기 전에 선언한 변수, 함수들의 메모리 공간이 할당되는 것입니다. 선언과 동시에 초기화를 하더라도 호이스팅 시점에는 모두 undefined로 초기화됩니다. var이나 function 등은 undefined로 초기화되지만, let과 const는 메모리 공간만 할당될 뿐, undefined로 초기화되지 않습니다. 예시입니다. var로 선언하여 변수를 출력하는 코드입니다. 첫 번째는 undefined로 출력되지만 두 번째는 "Hello"로 초기화되어 출력되는 것을 볼 수 있습니다. 이번에는 let으로 선언했습니다. let으로 선언하면 호이스팅 시 초기화되지 않으므로 첫 번째 줄에서 에러가 나타납니다. 변수 선언 코드들이 코드의 최상단으로 이동하여 코드가 실행되는 개념이 아..
2022.04.12 -
[ JavaScript ] IE에서 Swiper 사용 시 주의 사항
Swiper 참조 swiperjs.com/ Swiper - The Most Modern Mobile Touch Slider Swiper is the most modern free mobile touch slider with hardware accelerated transitions and amazing native behavior. swiperjs.com 이미지 슬라이더 구현 시 사용하는 모바일에 최적화되어 있는 js입니다. 무작정 사용하시면 5버전 이상일 거라 IE에서는 isNaN 함수 사용하는 부분에서 오류가 나므로 작동을 하지 않습니다. 이럴 땐 IE를 사용하지 못하게 하거나 swiper의 버전을 4버전 이하로 낮춰야 합니다. 아래 사이트 들어가서 4버전 이하의 zip을 다운로드하셔서 dist 폴더..
2021.02.15 -
[ Android ] a webview method was called on thread 'javabridge'
안드로이드에서 자바스크립트를 호출할 때, A WebView method was called on thread 'javabridge'. All WebView methods must be called on the same thread.라는 메시지가 뜰 때 있습니다. 안드로이드에서 UI 스레드가 사용되어야할 때 비 UI 스레드가 호출되기 때문에 발생하는 오류입니다. 자바스크립트 메소드는 비 UI 스레드에서 호출되기 때문에 다른 처리를 해줘야 합니다. 선언한웹뷰명.post(new Runnable(){ @Override public void run(){ //자바스크립트 호출 } }); 이런식으로 호출하려던 함수를 구현하면 오류가 해결됩니다. 출처 : http://blog.danggun.net/3334
2019.12.19 -
[ Android ] 자바스크립트 인터페이스 삽입 취약점 문제 해결 하기
https://support.google.com/faqs/answer/9095419 자바스크립트 인터페이스 삽입 취약점 문제 해결하기 - Google 고객센터 도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요 support.google.com 웹뷰를 구현한 어플을 출시했는데 위와 같은 경고가 온다면 android에서 javascript를 호출 시 http 프로토콜로 호출했거나 javascript에서 android 호출한 url의 프로토콜이 http이기 때문인데, https로 바꾸면 즉시 해결된다.
2019.12.06