자바스크립트

JavaScript

Javascript - Scope(유효범위)

Scope란? (유효범위) 변수의 접근성과 생존 기간을 제어한다. 맛보기 코드 예제 let func1 = function(){ var a = 1; var b = 2; console.log(a + b); return a + b }; let a = 20; // a가 1로 적용될까 20으로 적용될까? ------------------------------------------------------ func1(); // 3 -> a = 1 로 적용되었다. // 함수 밖에서 a가 선언되어도 함수 안에서 다시 a = 1로 할당됨 스코프는 이름이 충돌하는 문제를 덜어주고, 자동으로 메모리를 관리한다. 🟢 자바스크립트의 유효 범위(scope) 전역 스코프 함수 스코프 블록 스코프(es6) 🔴 전역 스코프 스크립트 어디..

Algorithm

[프로그래머스] 프린터 - Javascript

코드 function solution(priorities, location) { let answer = 0; let compareArr = []; let finArr = []; let print; // 처음 지정한 출력물이 나중에 몇번째로 이동해있는지 찾기위해 인덱스와 함께 있는 형태로 2차 배열을 만들어줌 priorities.forEach( (elem, idx) => { let temp = [idx, elem]; compareArr.push(temp) }) // 비교할 배열의 첫번째 값을 가지고 그 뒷 값들중 큰게 있냐 없냐로 비교배열에서 뺴서 finArr에 담을지 아니면 가장 뒤로 옮길지 결정함 while(compareArr[0]){ print = compareArr.shift(); if(compar..

Algorithm

[프로그래머스] k번째 수 - Javascript

최초 풀이 function solution(array, commands) { var answer = []; for (var i = 0; i < commands.length; i++){ let selectedArray = array.slice(commands[i][0] - 1, commands[i][1]); selectedArray.sort(); answer.push(selectedArray[commands[i][2] - 1]) } return answer; } 제출하면 테스트 1개가 실패했다고 나온다. 풀이 방식은 맞는 거 같은데 어디서 틀렸는지 계속 찾다가 이유를 알게 되었는데 바로 sort() 메서드 부분이었다. sort 메서드는 compareFunction을 받는 메서드인데, compareFunct..

JavaScript

변수 호이스팅(Hoisting)

호이스팅에 대해 알아보자 console.log(score); // undefined var score; // 변수 선언문 위 코드블럭을 보면 선언하기 전에 변수를 console.log에 담았으니 ReferenceError(참조에러) 가 발생할 것처럼 보인다. 하지만 에러 없이 "undefined"가 출력된다. 그 이유는 변수 선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임(runtime)이 아니라 그 이전 단계에서 먼저 실행되기 때문이다. 자바스크립트 엔진은 소스코드를 한 줄씩 순차적으로 실행하기 앞서(runtime 이전) 먼저 소스코드의 평가과정을 거치면서 소스코드를 실행하기 위한 준비를 한다. 이때 소스코드 실행을 위한 준비 단계인 소스코드의 평가 과정에서 자바스크립트 엔진은 변수 선..

개발늦둥이
'자바스크립트' 태그의 글 목록