[JavaScript] 자바스크립트 기본 (2)

knk.log·2023년 7월 10일
post-thumbnail

<모던 JavaScript 튜토리얼 - 코어 자바스크립트>
https://ko.javascript.info/

🔢자료형

  • 8가지 기본 자료형
  • 변수는 자료형에 관계없이 모든 데이터일 수 있다. (바뀔 수 있다.)
// no error
let message = "hello";
message = 123456;

이처럼 변수에 저장되는 값의 타입을 언제든지 바꿀 수 있는 언어를 '동적 타입(dynamically typed)' 언어라고 부른다.

숫자형(number type)

  • 정수 및 부동소수점 숫자(floating point number)

특수 숫자 값(special numeric value)

  • Infinity, -Infinity - 무한대
    alert( 1 / 0 ); - 어느 숫자든 0으로 나누면 무한대
    alert( Infinity ); - 직접 참조
  • NaN - 계산 중 에러 발생
    alert( "숫자가 아님" / 2 );

BigInt

  • (253-1) = (9007199254740991) <= 숫자형 범위 <= -(253-1)
  • BigInt는 길이의 상관없이 정수를 나타낼 수 있다.
  • 정수 리터럴 끝에 n을 붙이면 BigInt
    const bigInt = 1234567890123456789012345678901234567890n;
  • IE에서는 지원 X (Firefox, Chrome, Edge, Safari는 지원 O)

문자형(string)

  • 따옴표로 묶음 큰따옴표(""), 작은따옴표(''), 역 따옴표(``)
  • 큰따옴표("")와 작은따옴표('')는 구분 X
  • ${…}에 변수나 표현식을 넣고 역 따옴표(``)로 감싸면 문자열 중간에 넣을 수 있다.
let name = "John";
alert( `Hello, ${name}!` ); // Hello, John!
alert( `the result is ${1 + 2}` ); // the result is 3
  • 글자형은 없음 (C언어, Java - char)

불린형

  • True / False

'null' 값

  • 다른 언어 : null 값을 '존재하지 않는 객체에 대한 참조'로 사용
  • 자바스크립트 : null 값은 '존재하지 않는(nothing) 값', '비어 있는(empty) 값', '알 수 없는(unknown) 값'로 사용
    let age = null; //변수 age 값을 알 수 없거나 비어있음

'undefined' 값

  • 값이 할당되지 않은 상태
  • 변수 선언 후 값을 할당 하지 않았을 때
  • 직접 명시적으로 할당했을 때
let age;
alert(age); // 'undefined'

age = undefined;
alert(age); // "undefined"

객체(object)와 심볼(symbol)

  • 객체형 : 데이터 컬렉션이나 복잡한 개체 표현 가능
  • 심볼형 : 객체의 고유한 식별자(unique identifier)를 만들 때 사용

원시(primitive) 자료형 : 문자열이든 숫자든 한 가지만 표현 가능 (객체형 제외)

typeof 연산자

  • 인수의 자료형 반환
  • 자료형을 나타내는 문자열 반환
  • 두 가지 형태의 문법 지원
    1. 연산자 : typeof x
    1. 함수 : typeof(x)
  • 결과는 동일
typeof undefined // "undefined"
typeof 0 // "number"
typeof 10n // "bigint"
typeof true // "boolean"
typeof "foo" // "string"
typeof Symbol("id") // "symbol"

typeof Math // "object"
typeof null // "object"
typeof alert // "function"
  • Math는 수학 연산을 제공하는 내장 객체
  • typeof null - 언어 자체의 오류
  • typeof alert - 피연산자가 함수면 "function"반환

    함수는 객체형에 속함. (함수형은 없음)

과제

문자열 따옴표

//아래 스크립트의 결과를 예측해 보세요.
let name = "Ilya";

alert( `hello ${1}` ); // hello 1

alert( `hello ${"name"}` ); // hello name

alert( `hello ${name}` ); // hello Ilya

0개의 댓글