JS가 뭐임?
JS HTML로 뼈대를 잡고, CSS는 디자인 및 스타일을 구현, JavaScript 동작과 기능을 구현하는 것이다
기존에 JS는 웹에서 개발해야했지만 Node.js를 활용하여 백엔드에서도 개발이 가능하고, Terminal로 보며 개발이 가능해진다
JS 기본 문법
1. 변수

var은 잘 안쓰인다고 하니 skip
const라는 의미를 보면 상수라고 되어있는데, 상수가 숫자 상수가 아니라, 변하지 않는값, Constant의 약자로 Const가 사용된다.
재선언과 재할당의 차이
재선언
같은 Scope 내에서 키워드를 함께 사용하며 다시 선언하는경우
var a = 1;
var a = 2; // ✅ var는 재선언 가능
let b = 1;
// let b = 2; // ❌ SyntaxError: Identifier 'b' has already been declared
const c = 1;
// const c = 2; // ❌ SyntaxError
재할당
이미 선언된 변수에서 값을 새롭게 정의하는 경우
var a = 1;
a = 3; // ✅ 가능
let b = 1;
b = 3; // ✅ 가능
const c = 1;
// c = 3; // ❌ TypeError: Assignment to constant variable

이런식으로 결과가 출력되게 된다. 변수를 let으로 선언하게되면 재 할당이 가능하다
let const로 선언된 변수는 가장 가까운 중괄호 블록{} 안에서만 유효하다.
2.변수 자료 형식- 기본형

이처럼 선언해준다. C언어에서 int와 Float으로 나누어진것과 다르게 이렇게 const로 상수를 선언해주면 바로 결과값이

이처럼 나오게된다. 편하네요ㅎㅎ
3.Literal 변환
3.1 number를 string으로 변환
위와같이 4가지 방법이 존재한다
근데 편한것은 $ dollar sign을 사용하거나 String을 사용하거나 toString을 사용하는거인듯
3.2 string을 number로 변환
위와같이 4가지 방법이 존재한다
실질적으로 사용하기 편한건 +를 붙여주거나 *1을해주는거, 아니면 위와 통일성을 지키기 위해 Number를 선언해주는거 정도?
String을 사용해주면 " " 를 열어줘서 String type을 나타내주고 Number를 나타내면 보통 그냥 쓰는듯하다..
3.3 Bigint로 사용
값이 클때는 정수형의type을 써주고 뒤에 n을 붙여준다
이런거처럼
3.4 Symbol 사용
고유하고 변경 불가능한 값으로, 주로 객체의 고유한 속싱 키로 사용
Result:
false
{ [Symbol(id)]: 1234, [Symbol(id)]: '1234' }
false
true
Symbol을 설정하게 되면 input값을 같은값으로 넣어도 결과값이 달라지게된다.

1. Primitive 타입
- 예: number, string, boolean, null, undefined, symbol, bigint
- 저장 위치: 스택(Stack)
→ 값 자체를 스택에 저장 (고정 크기이기 때문에 가능) - 특징: 값이 복사됨 (Call by Value)
2. Reference 타입
- 예: object, array, function
- 저장 위치:
- 실제 데이터는 힙(Heap)에 저장
- 변수에는 참조 값(주소)이 스택에 저장됨
- 특징: 주소가 복사되므로, 같은 객체를 참조하게 됨 (Call by Reference)
약간 포인터 개념으로 생각하면 되는거같음
Primitive 타입의 데이터 타입은 Stack의 주소를 가르키고, 그속에 값이 들어있는데
Reference 타입의 데이터 타입은 Stack의 주소를 가르키고, 그 속에 Heap영역의 주소를 가르킨다
1.함수에 변수를 할당하는 경우
2.함수를 인자로 전달하는 경우
3.함수를 반환하는 경우
4.객체의 속성으로 사용하는 경우
이처럼 함수를 사용할수있다.
화살표로 return을 생략할 수 있으며 보다 더 간결하게 함수를 나타 낼 수 있다.
Array Method

추가 Method
| push(value) | 배열 끝에 요소 추가 | arr.push(4) → [1, 2, 3, 4] |
| unshift(value) | 배열 앞에 요소 추가 | arr.unshift(0) → [0, 1, 2, 3] |
| splice(index, 0, value) | 원하는 위치에 요소 삽입 | arr.splice(1, 0, 100) → [1, 100, 2, 3] |
let arr = [1, 2, 3];
arr.push(4); // [1, 2, 3, 4]
arr.unshift(0); // [0, 1, 2, 3, 4]
arr.splice(2, 0, 99); // [0, 1, 99, 2, 3, 4]
읽기 Method
| [index] | 인덱스로 접근 | arr[1] → 2 |
| includes(value) | 값 존재 여부 확인 (true/false) | arr.includes(2) → true |
| indexOf(value) | 값의 인덱스 반환 (없으면 -1) | arr.indexOf(3) → 2 |
let arr = [1, 2, 3];
console.log(arr[1]); // 2
console.log(arr.includes(2)); // true
console.log(arr.indexOf(3)); // 2
삭제 Method
| pop() | 마지막 요소 제거 | arr.pop() → 마지막 값 제거 |
| shift() | 첫 번째 요소 제거 | arr.shift() → 첫 번째 값 제거 |
| splice(index, count) | 원하는 위치의 요소 삭제 | arr.splice(1, 2) → index 1부터 2개 삭제 |
let arr = [1, 2, 3, 4];
arr.pop(); // [1, 2, 3]
arr.shift(); // [2, 3]
arr.splice(0, 1); // [3] (index 0부터 1개 삭제)
If-else 문
예전에 C언어 조금 해보며, 연관지으며 이해하고있는데
if else문은 거의 비슷하고 console.log는 printf문으로 생각하면 편할듯하다
printf("Hello World') == console.log("Hello world");
for...of 문이란?
- 반복 가능한 객체(Iterable)의 값을 하나씩 꺼내서 반복하는 문법
- 반복 가능한 객체에는:
- 배열(Array)
- 문자열(String)
- Map
- Set
-
let arr = [10, 20, 30];for (let value of arr) {console.log(value);}
이런 방식으로선언하는건데 A of B 라는 영어를 보면 B가 더 main이지 않았나... 그런방식으로 생각했듭니다
그래서 배열의 형태는 B의 위치에 해당하고, 앞에 오는것은 Value에 해당하는 값
for...in 문이란?
- 객체(Object) 안의 속성 이름(key)을 하나씩 꺼내서 반복하는 문법입니다.
- 키를 꺼내고, 그 키를 이용해 해당 값(obj[key])에 접근할 수 있습니다.
Object에서 Key값을 찾는다는 것이다
기본문법
forEach란?
- 배열(Array), Set, Map과 같이 반복 가능한 자료형의 각 요소에 대해 콜백 함수를 실행하는 메서드
- for나 for...of처럼 반복문 역할을 하지만, 내부적으로 순회를 처리해줌
- 반환 값이 없음 (undefined를 반환) → 단순히 순회하며 작업할 때 사용
이런 방식으로 데이터를 반복적으로 뽑아내는 것에 해당한다
'LLM' 카테고리의 다른 글
| [Kubernetes,K8s]쿠버네티스 (5) | 2025.08.13 |
|---|---|
| [Docker]Docker build/run/push/Kubernetes (4) | 2025.08.12 |
| [6]CSS (3) | 2025.08.11 |
| [5]HTML (3) | 2025.08.08 |
| [4]컴퓨터통신/HTML (7) | 2025.08.07 |