프로그래밍/Javascript

[JavaScript] 2. 값

나모장 2022. 3. 10. 15:19

JavaScript의 언어 타입은 원시값, 객체로 나눌 수 있다.

1. 원시값 : 불변적

Boolean : true/false

Null : null 빈 값 표현

Undefined : 값을 할당하지 않은 변수는 undefined 값을 갖는다.

Number : -(2^53 − 1)부터 2^53 − 1까지

BigInt : math 객체의 메소드와 함께 사용 불가, 연산에서 number와 혼합 사용 불가

String : c언어와 다르게 불변. 문자열을 생성한 후 바꾸는 것은 불가능.

원본 문자열을 사용해 새로운 문자열을 생성하는 것은 가능 ex) String,concat() 을 사용해 두 개의 문자열을 합침

Symbol : 객체의 key 값으로 활용

불변이라는 게, 구체적으로 어떤 의미인지 알고 싶어 찾아보았다.

const test = 'string' 
console.log(test.toUpperCase()); // STRING으로 출력

console.log(test); // string으로 출력

위의 사례를 보면, toUpperCase는 대문자로 변환해주는 함수이다.

toUpperCase로 대문자로 바꿨는데 test를 출력하면 왜 소문자로 나오지 ? 하는 의문이 들 수 있다.

이는 원시값이 불변적이기 때문이다. 대문자로 바꾸고 싶다면

let test = 'string'
test = test.toUpperCase();

console.log(test); //STRING으로 출력

이렇게 위와 같이 재할당해야 바뀔 수 있다.

 

2. 객체(레퍼런스)

배열, 함수, 클래스 모두 객체

객체는 key : value 를 가지고 복잡한 데이터 구조를 형성

key 에는 String, Symbol 타입

value 에는 모든 데이터 타입 값

* 엄격한 비교, 느슨한 비교

엄격한 비교 ===

느슨한 비교 ==

const num = '0'

if (num == 0) {
    console.log('num is 0');
} else {
    console.long('num isn't 0');
}

결과 : num is 0

const num = '0'

if (num === 0) {
    console.log('num is 0');
} else {
    console.long('num isn't 0');
}

결과 : num isn't 0

부동소수점 방식

javascript에서는 IEEE 754 부동소수점 방식을 택하고 있음.

부동 : 움직이는 것 (floating point)

Reference

https://zero-base.co.kr/courses/210094

[제로베이스 - 밑바닥부터 끝까지 듣는 온라인 강의

무조건 간다! 개발자 스쿨 '네카라쿠배', 끝까지 공부하는 '온라인 완주반', 전문가가 베스트셀러를 해석해 주는 '한달한권' 등 교육 서비스로 삶의 전환점을 제공하는 제로베이스입니다.

zero-base.co.kr](https://zero-base.co.kr/courses/210094)