호이스팅 🤔 자바스크립트 코드를 작성하다 보면 호이스팅(Hoisting)이라는 신기한 경험을 할 때가 있습니다. 호이스팅이란, 변수 선언문이나 함수 정의문이 코드의 위로 끌어올려진 것처럼 동작하는 것을 말합니다. Hoisting is a JavaScript mechanism where variables and function declarations are moved to the top of their scope before code execution. 자바스크립트 엔진은 코드를 실행하기 전, 필요한 정보(변수, 함수 식별자)를 메모리에 설정합니다. 이 과정에서 식별자만 저장하는 변수와 달리 함수는 참조하고 있는 본체까지 함께 저장합니다. ES6에서 추가된 let과 const로 생성된 변수는 초기화되지 않..
단축 평가 🤔 단축 평가(Short-circuit Evaluation)는 연산의 결과가 확정된 경우, 남아 있는 연산을 생략하는 것을 말합니다. 논리 연산에서 주로 확인할 수 있는데, 대표적인 논리 연산인 논리곱(&&)과 논리합(||)을 통해 알아 보겠습니다. console.log('cat' || 'dog'); // cat console.log('cat' && 'dog'); // dog console.log(false || 'apple'); // apple console.log(false && 'apple'); // false 이처럼 논리 연산은 좌항에서 우항으로 진행되기 때문에, 불필요한 과정은 생략되고 최종적으로 평가된 피연산자를 결과로 반환합니다. 또한 자바스크립트는 연산 결과를 결정하는 피연산자의..
리터럴(Literal) 🤔 리터럴(Literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 통해 값을 생성하는 표기법(Notation)입니다. 현존하는 거의 모든 프로그래밍 언어에서 사용할 수 있으며, 보통 변수나 상수를 초기화할 때 사용합니다. // Literal: 7, 'hello', { name: 'NoHack' } const foo = 7; const bar = 'hello'; const obj = { name: 'NoHack' }; 사람이 이해할 수 있는 문자나 기호를 사용함으로써, 자바스크립트 엔진은 런타임 시점에 메모리에 값을 생성합니다. 배열([1, 2, 3])과 함수(function() {}), 그리고 정규 표현식(/[a-z]+/g) 역시 리터럴에 해당 됩니다.
소환사 주문 가속 재사용 대기시간 감소가 스킬 가속이라는 메커니즘으로 변경되면서, 소환사 주문 쪽에도 비슷한 변화가 있었습니다. 그래서 소환사 주문이 가속 관련 효과를 받았을 때, 재사용 대기시간은 얼마나 감소하는지 정리했습니다. ※ 칼바람 나락에서만 사용되는 '표식' 스펠은 작성하지 않았습니다. 소환사 주문 가속 공식 1. 재사용 대기시간 x { 100 / ( 100 + 수치 ) } 2. 재사용 대기시간 - (룬에 의해 감소된 시간) - (신발에 의해 감소된 시간) 기본적인 가속 공식은 1번 식을 따르고 있으나, 우주적 통찰력 룬과 아이오니아 장화를 동시 채용할 때는 2번 식을 따릅니다. 그래서 최종적인 값이 맨 아래(동시 채용)와 같이 나온 것입니다. 해외에서는 'Spell Cheat'라 불리고 있는..
룬(Rune)이란? 2018 시즌부터 변경된 시스템으로, 시즌 7까지 존재하던 룬과 특성을 대체하는 시스템입니다. 패시브를 하나 더 달아주는 듯한 효과를 가지며 소환사 주문, 그리고 아이템과 관련된 룬도 있습니다. 챔피언마다 효율이 좋은 룬이 존재하기 때문에 선택한 룬에 따라 부족한 성능을 보충할 수 있으며, 또한 라인전과 한타에 많은 힘을 실어줄 수도 있습니다. 게임에는 핵심 룬을 포함한 7개의 룬을 들고 임하게 되며, 총 63개의 룬이 있습니다. 이처럼 많은 룬이 있는 데다, 각각 다양한 효과를 보유하고 있기 때문에 얼마만큼의 골드 가치가 있는지 책정해보려 합니다. 분석 방법 1. 기본 아이템을 통해 최대한 여러 스탯의 '스탯당 1' 가격을 계산합니다. (없는 스탯은 상위 아이템으로부터 역산) 2. ..