[JavaScript] 2. 값
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)