[JavaScript] 변수와 자료형

thingzoo·2023년 4월 24일
0

JavaScript

목록 보기
1/7
post-thumbnail

1. 변수와 상수

변수

  • let으로 선언
  • var는 오래된 방식
let message;
message = 'Hello!';

상수

const myBirthday = '18.04.1982';

2. 자료형

  • 자바스크립트 변수는 자료형에 관계없음

숫자형(number type)

let n = 123;
n = 12.345;

특수 숫자 값(special numeric value)

  • Infinity : 어떤 숫자보다 더 큰 특수 값, 무한대(∞)
  • -Infinity
  • NaN : 계산 중에 에러가 발생했다는 것을 나타내주는 값

BigInt

  • 숫자형은 (253-1)(9007199254740991) 보다 큰 값 혹은 -(253-1) 보다 작은 정수를 나타낼 수 없음
  • 그런 경우네는 BigInt를 사용해야함
  • 정수 리터럴 끝에 n을 붙임
const bigInt = 1234567890123456789012345678901234567890n;

문자열(string)

  • 기본적으로 큰따옴표(")과 작은따옴표(')를 이용
  • 역 따옴표(`)를 이용하면 표현식을 문자열에 넣을수있음
let name = "John";
alert( `Hello, ${name}!` );

논리형(Boolean Type)

  • true와 false 두 가지 값밖에 없는 자료형
let nameFieldChecked = true;
let ageFieldChecked = false;

null 값

  • 어느 자료형에도 속하지 않는 값
  • null 값만 포함하는 별도의 자료형

undefined 값

  • null 값처럼 자신만의 자료형을 형성
  • 값이 할당되지 않은 상태’를 나타낼 때 사용
let age;
alert(age); // 'undefined'가 출력됨

객체(object)

  • 객체형을 제외한 다른 자료형은 문자열이든 숫자든 한 가지만 표현할 수 있기 때문에 원시(primitive) 자료형
  • 객체는 데이터 컬렉션이나 복잡한 개체(entity) 표현 가능

심볼(symbol)

  • 객체의 고유한 식별자(unique identifier)를 만들 때 사용

typeof 연산자

  • 인수의 자료형을 반환
  • 연산자: typeof x
  • 함수: typeof(x)
typeof undefined // "undefined"

typeof 0 // "number"

typeof 10n // "bigint"

typeof true // "boolean"

typeof "foo" // "string"

typeof Symbol("id") // "symbol"

typeof Math // "object"  (1)

typeof null // "object"  (2)

typeof alert // "function"  (3)
  1. Math는 수학 연산을 제공하는 내장 객체이므로 "object"
  2. null은 객체가 아니지만, 하위 호환성을 유지하기 위해
  3. 함수는 객체형에 속함. 자료형은 아니지만 하위 호환성 유지를 위해

3. 형변환

문자형으로 변환

  • alert메서드는 매개변수로 문자형을 받음
  • 만약, 다른 형의 값을 전달받으면 이 값은 문자형으로 자동 변환됨
let value = true;
alert(typeof value); // "boolean" 출력

숫자형으로 변환

  • 숫자형이 아닌 값에 나누기 /를 적용한 경우
alert( "6" / "2" ); // 3
  • Number(value) 함수를 사용하면 주어진 값(value)을 숫자형으로 명시해서 변환
let str = "123";
alert(typeof str); // string
let num = Number(str); // "123"->123
  • 단, 숫자 이외의 글자가 들어가 있는 문자열을 숫자형으로 변환하려고 하면, 그 결과는 NaN이 됨
let age = Number("임의의 문자열 123");
alert(age); // NaN, 형 변환 실패
  • 숫자형으로 변환 시 적용되는 규칙
전달받은 값형 변환 후
undefinedNaN
null0
true and false1 과 0
string문자열의 처음과 끝 공백 제거됨. 공백 제거 후 남아있는 문자열이 없다면 0, 그렇지 않다면 문자열에서 숫자를 읽음. 변환에 실패하면 NaN

불린형으로 변환

  • 숫자 0, 빈 문자열, null, undefined, NaN과 같이 직관적으로도 “비어있다고” 느껴지는 값들은 false가 됨
  • 그 외의 값은 true로 변환됨
alert( Boolean(1) ); // 숫자 1(true)
alert( Boolean(0) ); // 숫자 0(false)

alert( Boolean("hello") ); // 문자열(true)
alert( Boolean("") ); // 빈 문자열(false)

Reference

🔗 모던 JavaScript 튜토리얼

profile
공부한 내용은 바로바로 기록하자!

0개의 댓글