목록Vanilla JS (6)
바르고 뜨겁게
[JavaScript] 실행 컨텍스트와 호이스팅자바스크립트는 함수 선언보다 함수 실행을 먼저 하더라도 동작이 된다.코드는 위에서 아래로 실행이 된다고 알고 있는데 왜 그런걸까? 실행 컨텍스트실행 컨텍스execution context는 실행할 코드의 환경 정보를 모아놓은 객체로, 가장 먼저 실행되어 스택에 들어가게 된다.이 실행 컨텍스트가 생성될 때, 호이스팅이 된다. 호이스팅호이스팅hoisting이란 실행 컨텍스트에 환경 정보를 저장할때 매개변수의 이름, 함수 선언, 변수명등을 끌어 올려서 기록하는 것 입니다.원본 코드 var a // 수집대상 var a = 3 // 선언부만 호이스팅, 할당은 원래 자리에 남겨둠. function f (arg) { // 수집대상(함수 선언문은 호이스팅됨) var fv..
JavaScript - dot(.) 점이 있는 JSON parsing Object : {gcm.notification.body: "테스트 메시지", gcm.notification.title: "테스트 타이틀"} 위와 같은 형태의 JSON 은 Object.gcm.notification.body 형태로 파싱하면 에러가 난다.Object.['gcm.notification.body'] 이렇게 파싱해야 에러없이 원하는 값을 얻을 수 있다.
setInterval 사용시 func.apply is not a function 에러자바스크립트에서는 함수 호출 자리에 함수의 이름이 아니라 함수명() 처럼 코딩시 정의된 함수가 즉시 호출되어 버린다.따라서 아래와 같이 코딩하면 func.apply is not a function 에러를 만나게 된다. 잘못된 사용법_myFunc = () => { ... } this._timerId = setInterval(this.myFunc(),1000);코드 실행시 즉시 1번 호출이 되고, 10초 뒤엔 func.apply is not a function 에러를 만나게 된다.의도는 myFunc() 함수를 10초마다 호출하여 실행하는 것이지만, 해결 방법_myFunc = () => { ... } this._time..
Vanilla JS - Array.includes배열안에 특정 argument가 포함되어 있는지 검사한다. const numbers = [153, 8, 45, 68, 4153, 5, 8541, 635, 153, 3, 5, 1, 85, 1, 3, 5, 85]; if(numbers.includes(153)){ console.log('153 존재'); }else{ numbers.push(153); // 배열에 추가함 } 153 존재
Vanilla JS - Array.filterarray.filter : 배열의 각각의 argument 에 Function 실행하고 true를 리턴할 경우만 배열로 만든다 const numbers = [153, 8, 45, 68, 4153, 5, 8541, 635, 153, 3, 5, 1, 85, 1, 3, 5, 85]; // 10보다 큰 argument 가 리턴됨 const biggerThan10 = numbers.filter(number => number > 10); console.log(biggerThan10); // 5를 제외한 argument 가 리턴됨 const del5 = numbers.filter(number2 => number2 !== 5); console.log(del5); [..
Vanilla JS - Array.maparray.map : 배열내의 각각의 argument 에 function을 [실행] 후 [return]return 을 해줘야 값이 저장된다. const days = ["Mon", "Tue", "Wed", "Thurs", "Fri"]; // 리턴 없음 const temp = days.map(newArray => console.log(newArray)); console.log("temp : ", temp); // 각각의 배열 파라미터에 happy를 추가하여 리턴 const smilingDays = days.map(newArray => `happy ${newArray}`); console.log("smilingDays : ", smilingDays); //..