[프로그래머스 | Lv. 1 | JavaScript] 자릿수 더하기
·
알고리즘/문제
Link코딩테스트 연습 - 자릿수 더하기 문제풀이(1)function solution(n) { let answer = 0; let arg = n; while (arg >= 1) { answer += arg % 10; arg = Math.floor(arg / 10); } return answer;}(2)function solution(n) { return String(n).split('').reduce((acc, digit) => acc + Number(digit), 0);} 간단 해설(1)나머지 연산(`%`)을 이용해서 1의 자리수부터 추출사용한 자리 없애기 위해서 나눗셈 연산(`/`)반복을 위한 조건 검사(`arg >= 1`)(2)숫자를 ..
[프로그래머스 | Lv. 1 | JavaScript] 약수의 합
·
알고리즘/문제
Link코딩테스트 연습 - 약수의 합 문제 풀이 & 해설풀이function solution(n) { let answer = 0; const sqrt = Math.sqrt(n); for (let i = 1; i  간단 풀이 방법1. 정수 n의 약수 구하기2. 정수 n의 제곱근 고려 주의점약수의 뜻"어떤 수나 식을 나누어 나머지가 없이 떨어지는 수나 식을 일컫는 말"if (n % sqrt === 0) answer += sqrt; // (1)if (sqrt ** 2 === n) answer += sqrt; // (2)두 조건문의 조건은 서로 다르다. 특히 `sqrt ** 2 === n`는 약수의 조건이 아니라 단순히 제곱근을 제곱한 것. 당연히 `n`이 나오겠지...
선택자(클래스, ID) 사용 기준과 실전 가이드 그리고 BEM
·
HTML & CSS
주의공부하는 과정에서 정리하는 하나의 가이드라인일 뿐입니다.  클래스 선택자 vs ID 선택자 - 사용 기준과 실전 가이드CSS에서 효율적인 스타일링을 위해 클래스 선택자와 ID 선택자를 적절히 사용하는 것이 중요합니다. 각각의 선택자는 특정 상황에 맞게 사용해야 코드가 깔끔하고 유지보수가 쉬워집니다. ID 선택자(#) - 고유한 요소에 사용특징문서 내에서 유일한 요소에 사용합니다 > 단일 요소를 명확하게 타겟팅해야 할 때 적합명시도(Specificity)가 높아 우선순위가 가장 강함자바스크립트에서 DOM 조작할 때 사용하기 편리함사용 기준페이지에서 단 한 번만 등장하는 요소레이아웃의 주요 구조 요소 : `#header`, `#footer`, `#main-content`특정 상호작용이 필요한 요소 : `..
자바스크립트 배열(Array)의 모든 것
·
JAVASCRIPT
자바스크립트의 배열배열의 기본 이해자바스크립트(JavaScript)에서 배열(Array)은 순서가 있는 리스트 형태의 컬렉션으로, 각 요소(element)에 인덱스(index)를 통해 접근할 수 있습니다. 주의할 점은 자바스크립트의 배열은 다른 언어의 배열과 달리 고정된 크기가 없고, 동적으로 늘어나거나 줄어들 수 있습니다. 또한 배열은 실제로 객체의 한 종류이며, `length` 프로퍼티를 통해 요소의 개수를 추적합니다.순서 있는 데이터 집합길이 가변적인덱스로 접근 가능실제로는 객체 타입 배열 생성 방법리터럴(`[ ]`)`Array( )` 생성자`Array.of``Array.from`리터럴 표기법가장 일반적이고 직관적인 방법const arr = [10, 20, 30];Array 생성자const arr1..
자바스크립트의 스코프 규칙: Lexical Scope
·
JAVASCRIPT
SummaryJavaScript는 렉시컬 스코프(정적 스코프)를 채택하고 있다.함수나 변수가 어디서 "정의"되었는지가 스코프를 결정한다.함수 호출 위치가 아니라, 함수 정의 위치가 중요하다.스코프 체인을 통해 내부 함수는 자신이 정의될 당시의 외부 스코프 변수에 접근할 수 있다.이 스코프 체인을 활용한 개념이 클로저이다.ES6 이후 `let`, `const`에 의한 블록 스코프 역시 렉시컬 스코프의 개념을 강화한다. JS의 렉시컬 스코프(Lexical Scope)란?JavaScript에서 스코프(Scope)는 변수, 함수, 객체 등이 코드 어디에서 유효하며 접근 가능한지를 결정하는 개념입니다. 이러한 스코프는 크게 렉시컬(lexical) 스코프와 동적(dynamic) 스코프로 나눌 수 있습니다. Java..
브라우저 환경에서의 자바스크립트 - this
·
JAVASCRIPT
서론 및 요약: this를 쓰는 이유자바스크립트에서 `this` 키워드가 많이 사용되는 이유는 코드의 유연성을 높이고, 다양한 컨텍스트에서 객체나 함수의 동작을 다르게 만들 수 있기 때문입니다. 또한 `this`는 코드 실행 시점에 따라 동적으로 바인딩되며, 함수나 객체의 실행 컨텍스트를 이해하는 데 핵심적인 역할을 합니다. 하지만 이러한 특성 때문에 `this`의 동작 방식을 이해하는 데 혼란을 겪는 경우가 많습니다. 특히 함수 호출 방식, 객체의 메서드 호출, 그리고 화살표 함수와의 차이점은 `this`를 다룰 때 주의해야 할 주요 요소입니다. 예를 들어서동적 컨텍스트 바인딩`this`는 함수나 메서드가 호출되는 컨텍스트에 따라 동적으로 바인딩됩니다. 즉, 함수가 어떻게 호출되었는지에 따라 `this..
JavaScript 변수의 모든 것: var, let, const 완벽 비교와 활용법
·
JAVASCRIPT
JavaScript 변수변수는 데이터를 저장하고 관리하는 데 사용되는 프로그래밍 언어의 기본 요소입니다. JavaScript에서는 데이터를 동적으로 관리할 수 있으며, 변수 선언 방식에 따라 데이터의 처리와 범위가 달라집니다. 변수 선언 방식의 진화 (var → let, const)초기의 JavaScript에서는 `var`만 존재했지만, ES6 (ECMAScript 2015) 이후 `let`과 `const`가 추가되면서 보다 명확하고 안전한 변수 선언이 가능해졌습니다. var의 이해기본 개념과 선언 방법`var`는 JavaScript에서 가장 오래된 변수 선언 방식으로, 다음과 같이 사용됩니다.var x = 10; 함수 스코프와 전역 스코프함수 스코프 : `var`는 함수 내에서 선언된 경우 해당 함수 ..