PE

[javascript] 자바 스크립트 기초 학습 01

끊임없이 개발하는 새럼 2025. 2. 20. 14:01

- 자바 스크립트 기본 문법

 

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