자바스크립트 5

[JS] 자바스크립트의 호이스팅(Hoisting)과 TDZ(Temporal Dead Zone) 이해하기

호이스팅(Hoisting)과 TDZ(Temporal Dead Zone)에 대해 알아보자. 이 두 가지 개념은 변수와 함수의 선언, 초기화, 그리고 접근 순서에 영향을 미치는 개념이다. 이 글에서는 호이스팅과 TDZ에 대한 개념과 작동 방식, 그리고 예제 코드를 통해 살펴본다. 호이스팅이란 무엇인가 호이스팅은 자바스크립트에서 변수와 함수 선언을 스코프의 맨 위로 끌어올리는 동작을 말한다. 이는 코드에서 변수와 함수를 선언하기 전에 사용할 수 있다는 특징을 가지고 있다. 호이스팅은 실제로 코드의 위치가 변경되는 것이 아니라, 컴파일 단계에서 메모리에 공간을 할당하고 변수와 함수에 대한 참조를 스코프의 맨 위로 이동시킨다. 호이스팅의 작동 방식을 이해하기 위해 예제 코드를 살펴보자. console.log(na..

[JavaScript] 백준 풀기 2438 - 별 찍기 - 1

자바스크립트 node.js 백준 2438번 브론즈5 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 입출력을 위해 fs 모듈을 불러온다 let fs = require('fs'); 백준에 저장된 input 데이터를 불러온다. readFileSync('/dev/stdin') let star 변수를 선언하여 inputdata 숫자만큼 for loop 을 돌리면서 별 "*" 를 추가하고, 프린트한다. let star = ""; for (let i = 0; i < inputdata; i++) { star += "*"; con..

공부하기/백준 2022.11.06

[JavaScript] 백준 풀기 2577 - 숫자의 개수

자바스크립트 nodejs 백준 2577번 브론즈2 https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 문제에서 제시한 그대로 세 개의 곱을 계산하여 나온 결과를 0 부터 9 까지 for loop 을 사용하여 찾고자 하였는데 자바스크립트 검색을 하다 보니 더 좋은 아이디어를 보게 되었다. 곱을 하여 계산된 결괏값에 0 ~ 9 중의 숫자가 들어있으면 그 숫자로 분리하고, 그 분리 저장된 배열의 원소의 개수를 기반으로 찾는 방법이다. 코드 보기 let nu..

공부하기/백준 2022.11.03

[JavaScript] 백준 풀기 2588 - 곱셈

자바스크립트 백준 2588번 브론즈3 https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 문제 보기 분류: 수학, 사칙연산 문제 풀기 줄 바꿈으로 저장되어있는 두 개의 숫자를 문자로 입력받아 각각 나눠 저장한다. const fs = require('fs'); const [num1, num2] = fs.readFileSync('dev/stdin').toString().trim().split('\n'); 첫 번째 입력받은 string 타입의 숫자는 integer 형태로 바꾸어 저장한다. const num1toInt = parseInt(num1); 두 번째 ..

공부하기/백준 2022.11.02

[JavaScript] 백준 풀기 10430 - 나머지

자바스크립트 백준 10430번 브론즈5 https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 문제 보기 문제 풀기 문제는 나머지 연산에 대한 분배법칙이 어떻게 성립하는지를 이야기하고 있다. 이전에 백준을 풀면서 나머지 분배법칙을 생각지 못해 애를 먹은적이 있었다. 덧셈, 뺄셈, 곱셈에 대해서는 문제에서 제시한것처럼 간단한 형식을 보이지만 나눗셈에 대해서는 독특한 공식을 갖는다. Node.js의 built-in file system module fs 사용하여 파일을 읽어온다. const fs = require('fs'); 빈칸으로 띄어쓰기 되어있는 데이터 "..

공부하기/백준 2022.11.01