nodejs 에서 즉시 실행 함수로 초기화 하려고 하는데 자꾸 

 

TypeError: {(intermediate value)} is not a function 가 뜬다.

에러 라인도 자꾸 선언한 함수의 라인을 표시하니 내가 뭘 잘 못했지 계속 찾고있는데..

 

해당 함수를 선언 한 윗 코드에 세미콜론을 안붙여서 뜨는 에러였다.

 

let appData = {
    lastUpdatedTime: undefined
} // <------ 여기!

(function async(){
})();

 

 저곳에 세미콜론을 붙여주면 정상작동한다.

 

그런데 왜 이런일이 벌어지는걸까?

 

let appData = {
    lastUpdatedTime: undefined
}(function async(){
})();

이렇게 인식을 하기때문.. 이렇게 생각하니 이해가 가더라.

삽질 끝

 

참조 : stackoverflow.com/questions/42036349/uncaught-typeerror-intermediate-value-is-not-a-function

input type='file' 로 비디오 파일을 선택해서 video 태그로 재생해보자

 

<!-- HTML -->
<input id="file" type="file" accept="video/mp4,video/mkv, video/x-m4v,video/*">
<video id="video"></video>

html

input 에 type 은 file로, accept 로 비디오 확장자로 설정했다.

 

 

// Javascript

const inputFile = document.getElementById("file");
const video = document.getElementById("video");

inputFile.addEventListener("change", function(){
    const file = inputFile.files[0];
    const videourl = URL.createObjectURL(file);
    video.setAttribute("src", videourl);
    video.play();
})

 

일단 간단하게 이렇게 만들수 있다.

 

file loaded

 

샘플 페이지

codepen.io/mika0203/pen/VwPKLLM

element.insertAdjacentHTML(position, text);

 

element 에 html 텍스트를 파싱하여 node를 추가한다.

jQuery 의 append() 기능과 비슷하다고 생각하면 된다.

<div id='node'> </div>

<script type="text/javascript">
	var node = document.getElementById("node");
    var span = "<span> Hello World! </span>"

	node.insertAdjacentHTML("beforeend", span);
</script>

결과

 

position 엔 4가지가 있다.

jquery 의 append(), prepend(), before(), after() 과 동일하다. 

node.insertAdjacentHTML("beforebegin", "beforebegin");
node.insertAdjacentHTML("afterbegin", "afterbegin");
node.insertAdjacentHTML("beforeend", "beforeend");
node.insertAdjacentHTML("afterend", "afterend");

 

 

결과

 

현재 jQuery코드를 javascript 로 옮기는 중 의문점..

 

document.addEventListener("DOMContentLoaded", function(event) { 
  //do work
});

 

https://stackoverflow.com/questions/799981/document-ready-equivalent-without-jquery

자바스크립트로 난수를 생성해보자.

 

 

Math.random() 을 쓰면 된다.

for (var i = 0; i < 10; i++) {
    console.log(Math.random());
}
    
0.25721506183081844
0.5823201981959083
0.1276669448208927
0.5631301578055086
0.17111868936942853
0.5330896617959899
0.8969996301883194
0.5037203939477015
0.6167480911555299
0.009640469869059975

 

Math.random() 은 0 이상,  1 미만의 값을 Return 한다.

 

만약 정수로 0이상 9이하 의 값을 구하고 싶다면?

 

for (var i = 0; i < 10; i++) {
    console.log(Math.floor(Math.random() * 10));
}


5
6
8
6
0
7
4
8
6
9

 

Math.random() 으로 나온 값에 10을 곱해주고 Math.floor() 로 소수점을 없애주면 된다.

 

시작이 0이 아닌 1로 하고 싶다면

 

for (var i = 0; i < 10; i++) {
    console.log(Math.floor(Math.random() * 10) + 1);
}


2
3
1
7
8
10
3
5
2
6

1이상 10이하의 수가 구해진다.

+ Recent posts