- 자바 스크립트 기본 문법
1. 변수
* 쓸데없는 의문사항이 많음.
1-1. 변수
변수는 데이터를 위한 명명 장소로, 변수를 사용하여 데이터를 저장할 수 있다.
javascript는 변수를 사용하려면 let 키워드를 사용한다.
let message;
message = 'Hello!';
console.log(messgae); // Hello!
👉 여기서 의문 사항:
let message로 let 키워드를 사용할 때, 값이 원시 타입이면 일반 변수
let test = { 키: 값 }; 로 선언할 땐 값이 객체므로 객체를 참조하는 변수로 (=객체) 선언됨.
✅ 원시 타입의 일반 변수는?
let a = 10;
let b = a;
b = 20;
console.log(a); // 10
console.log(b); // 20
값을 복사하여 독립적으로 사용되며,
✅ 객체는?
let obj1 = { value: 10 };
let obj2 = JSON.parse(JSON.stringify(obj1)); // 완전히 새로운 객체 생성
obj2.value = 20;
console.log(obj1.value); // 10 (변하지 않음)
console.log(obj2.value); // 20
참조값을 복사하여 같은 메모리를 공유한다는 차이점이 있다.
1-2. 상수
상수를 선언하려면 const 키워드를 사용한다. 재할당될 수 없으며, 재할당을 시도하면 오류가 난다.
const myBirthday = '18.04.1982';
myBirthday = '01.01.2001';
// TypeError: Assignment to constant variable.
2. 데이터 유형
2-1. 숫자
let n1 = 123;
console.log(n1); //123
n2 = 123.5;
console.log(n2); //123.5
숫자 유형은 정수와 부동 소수점 숫자 모두 나타낸다.
자바에서는 int 와 float이 달랐지만, 여기서는 let으로 같이 선언해도 되는 것 같다.
👉 여기서 의문 사항:
그럼 타입은 어떻게 뜰까?
let n1 = 123;
let n2 = 123.5;
console.log(typeof n1); // "number"
console.log(typeof n2); // "number"
그냥 number로 뜬다.
javascript는 정수와 실수를 구분하지 않는다고 한다.
int, double, float 전부 구분하지 않고 number로 표현되며, 엄청 큰 숫자는 다음에서 다룰 Bigint로 나타내나 보다.
2-2 BigInt
javascript의 number은 보다 큰 정수값이나, 음수보다 작은 정수값을 제대로 나타낼 수 없다고 한다.
안전한 정수 범위를 벗어나면 모든 숫자가 고정된 64비트 저장소에 맞지 않기 때문에 정밀도 오류가 나타난다.
console.log(9007199254740991 + 1); // 9007199254740992
console.log(9007199254740991 + 2); // 9007199254740992
BingInt는 값 끝에 n을 넣어주면 된다.
const bigInt = 1234567890123456789012345678901234567890n;
console.log(bigInt + 1n); //1234567890123456789012345678901234567891n
console.log(bigInt + 2n); //1234567890123456789012345678901234567892n
2-3 String
문자열은 따옴표로 묶어야 하며, 3가지 유형의 따옴표가 있다.
let str = "Hello";
let str2 = 'Single quotes are ok too';
let phrase = `can embed another ${str}`;
console.log(phrase); //can embed another Hello
큰따옴표와 작은따옴표는 자바스크립트에서 기능상 별 차이점이 없지만,
백틱은 확장된 기능의 따옴표다. 위처럼 문자열을 추가해서 넣을 수 있다.
2-4 Boolean
자바와 같이 딱 두가지 값만 있다. true & false
let isGreater = 4 > 1;
console.log( isGreater ); // true
2-5 Null
말 그대로 Null은 아무것도 없음, 비어있음, 알 수 없음.
위에 설명된 어떤 유형에도 포함되지 않는다.
2-6 undefined
let nu1;
console.log(nu1); // undefined
값이 할당되지 않았다는 뜻
변수가 선언되었지만 값이 할당되지 않은 경우 나타난다.
2-7 Objects and Symbols
다른 모든 유형은 단일 항목만 포함되기 때문에 "원시"(아까 찾아봤던)라고 한다. 반면 객체는 데이터 컬렉션과 더 복잡한 엔티티를 저장하는데 사용한다.
symbol 유형은 객체에 대한 고유 식별자를 만드는 데 사용된다. 다음에 더 자세하게 다뤄야 할 것 같다.
✅ typeof 연산자
지금까지의 모든 데이터 유형에 typeof를 입혀보면
console.log("typeof");
console.log(typeof undefined); //undefined
console.log(typeof 0); // number
console.log(typeof 10n); //bigint
console.log(typeof true); //boolean
console.log(typeof "foo"); //string
console.log(typeof Symbol("id")); //symbol
console.log(typeof Math); //object
'PE' 카테고리의 다른 글
| Node.js와 React의 개념 (0) | 2025.03.06 |
|---|---|
| [javascript] 자바 스크립트 기초 학습 커리큘럼 생성 (0) | 2025.02.20 |