자바스크립트 호이스팅
델파이나 c#을 공부하고 이용할 땐 특별히 문제되지 않았던 호이스팅이 자바스크립트 공부를 하니 큰 비중으로 설명된다. 좀 어리둥절하고 이게 뭐 그리 대순가 싶다. 저런 머저리 같은 코드를 도대체 누가 작성한다고 저걸 설명하느라 몇 패이지씩 낭비를 한다. 참고로 위 코드는 변수가 호이스팅되어 정상 작동한다. 변수가 호출되는 코드의 뒤에 그 변수가 선언되어 있어도 변수가 호출될 때 선언된 것으로…
델파이나 c#을 공부하고 이용할 땐 특별히 문제되지 않았던 호이스팅이 자바스크립트 공부를 하니 큰 비중으로 설명된다. 좀 어리둥절하고 이게 뭐 그리 대순가 싶다. 저런 머저리 같은 코드를 도대체 누가 작성한다고 저걸 설명하느라 몇 패이지씩 낭비를 한다. 참고로 위 코드는 변수가 호이스팅되어 정상 작동한다. 변수가 호출되는 코드의 뒤에 그 변수가 선언되어 있어도 변수가 호출될 때 선언된 것으로…
많은 프로그래머들에게 let는 낯선 키워드다. 보통은 var를 쓴다. 왜 하필 let이라는 직관적이지 않은 단어로 변수를 선언하게 할까? 딱히 공식적으로 밝혀진 바는 없지만 믿을 만한 추론은 가능하다. 우선 이 키워드는 자바스크립트에서 처음 나온 게 아니다. 1960년대부터 유명한 배이식basic에서 쓰였다. 나름 역사가 깊은 단어다. 자바스크립트에서 var는 처치 곤란 말썽 분자다. 이제 와서 없애거나 다른 키워드로 바꾸기에는 너무…
위 코드는 서로 높이가 다른 오디오 컨트롤과 래이블을 옆으로 나란히 출력하는데 이때 엘리먼트들의 아래를 기준으로 한다. 높이가 낮은 래이블을 오디오 컨트롤의 중간에 맞춰 아래를 띄우려고 아래와 같이 해 봐야 작동하지 않는다. 아래와 같이 float 스타일을 적용해야 마진이 먹는다.
크로뮴을 기반으로 한 웹 브라우저에서 웹페이지가 열린 때 미디어가 자동으로 온전하게 재생되도록 하는 건 일반적으로 가능하지 않다. 변칙을 쓰면 되지만 굳이 크롬의 이용자 보호 정책을 무시하고 복잡한 코딩을 할 필요는 없다. 동영상의 경우 영상만 나오게 하는 건 되지만 소리까지 출력하는 건 금지된다. 오디오든 동영상이든 소리가 나오게 하려면 이용자가 웹페이지에 한 번은 반응하도록 해야 한다. 따라서…
자바스크립트는 너무 유연하게 작동하여 프로그래머가 실수를 한 때 멈추지 않고 엉뚱한 결과를 만들어 낼 수 있다. 기초 이론을 자세하게 공부하지 않은 개발자들에게는 쉽게 입문할 수 있다는 장점이 되고 규모가 작은 작업의 경우에는 특별히 문제될 게 없지만 큰 프로젝트의 경우에는 디버깅이 많이 번거로워진다. 변수를 사용하려면 반드시 선언이 필요하다.모던 자바스크립트 deep dive, 이웅모 맞다. 전역 변수로 사용하려면…
type이 file로 설정된 input 엘리먼트로는 파일만 고를 수 있다. 스탠더드 애트리뷰트는 아니지만 크로뮴 베이스드 웹 브라우저들에서는 제대로 작동하는 webkitdirectory를 이용하면 폴더를 선택할 수 있다. 그런데 이렇게 해도 버튼의 캡션은 여전히 파일 선택으로 되어 있다. 아래 예제에서는 input를 보이지 않게 하고 select folder라는 캡션의 button을 만든 뒤 버튼의 onclick 이벤트에 input이 작동하도록 했다. webkitdirectory를 통해 반환되는…
아래는 무료 버전의 기능들이다.
웹 브라우저로는 잘 열리는 url이 아래와 같은 코드로는 열리지 않는 경우가 있다. 서버가 http의 user agent header를 요구하기 때문이다. HTTP headers let the client and the server pass additional information with a message in a request or response.– HTTP headers, mdn web docs agent는 어려운 단어다. 흔히 대리인이라 번역하지만 computer와 관련되어서는 그렇지 않다. (computing) In…
function은 declare할 수 있고 express할 수도 있다. 쉽게 와닿지 않는 말이지만 개념은 쉽다. 후자는 그냥 익명 함수라고 보면 된다. The main difference between a function expression and a function declaration is the function name, which can be omitted in function expressions to create anonymous functions.– function expression, mdn 함수에 이름을 붙이면 ‘선언’한 거고 이름을 붙이지…