[러닝자바스크립트] Ch3. 리터럴과 변수, 상수, 데이터 타입

hanjiyeon·2020년 10월 29일

러닝자바스크립트

목록 보기
3/3
post-thumbnail

3.1 변수와 상수

변수 : 이름이 붙은 값, 언제든 바뀔 수 있음
상수 : 한 번 할당한 값을 바꿀 수 없음

3.2 변수와 상수 중 어떤 것을 써야 할까요?

될 수 있으면 변수보다 상수를 쓰는 것이 좋음
: 상수를 사용하면 바꾸지 말아야 할 데이터에서 실수로 값을 바꾸는 일이 줄어듬

  • 변수를 써야하는 경우
    1. loop 제어
    2. 시간이 지나면서 값이 바뀌는 경우

3.3 식별자 이름

식별자 : 변수, 상수, 함수 이름을 식별자라 부름
표기법 : 카멜 케이스, 스네이크 케이스

식별자는 반드시 글자, $, _로 시작
식별자는 대문자로 시작하면 안됨 (예외 : 클래스)
제이쿼리를 사용할 경우 $로 시작하는 식별자는 보통 제이쿼리 객체라는 의미

3.4 리터럴

리터럴 : 값을 프로그램 안에서 직접 지정한다는 의미. 값을 만드는 방법

JS는 따옴표를 통해 리터럴과 식별자를 구분

3.5 원시 타입과 객체

원시타입은 불변 : 숫자, 문자열, boolean, null, undefined, 심볼
객체는 여러 가지 형태와 값을 가질 수 있음 : Array, Date, RegExp, Map과 WeakMap, Set과 WeakSet, Number, String, Boolean

3.6 숫자

더블 : 실제 숫자의 근사치 저장할 때 부동소수점 숫자 형식 사용
자바스크립트에는 숫자형 데이터 타입이 하나

3.7 문자열

자바스크립트 문자열은 유니코드 텍스트
문자열 안에서 텍스트 데이터와 프로그램을 구분하는 방법 텍스트 데이터 앞에 \ 붙이기

3.8 특수문자

\n : 줄바꿈
\t : tap
\v : 세로 tap
\b : 백스페이스

문자열 템플릿 (문자열 채우기) : 문자열의 정해진 위치에 값을 채워넣는 간편한 방법. `사용

3.9 불리언

0 이외 다른 숫자는 true

3.10 심볼

심볼 : 유일한 토큰을 나타내기 위해 도입한 새 데이터 타입

const RED = Symbol("The color of a sunset!");
const ORANGE = Symbol("The color of a sunset!");
RED === ORANGE //false : 심볼은 모두 서로 다름

3.11 null과 undefined

null : 프로그래머에게 허용된 데이터 타입
undefined : 자바스크립트 자체에서 사용

3.12 객체

객체의 본질 : 컨테이너 - 내용물이 바뀔 수는 있지만, 내용물이 바뀐다고 컨테이너가 바뀌는 것은 아님
객체의 콘텐츠 : 프로퍼티, 멤버 - 이름(키)과 값으로 구성
객체에 함수를 담을 수 있음

sam3.speak = function(){return "Meow!";};
sam3.speak(); //"Meow!"

객체에서 프로퍼티를 제거할 때는 delete 연산자 사용

3.13 Number, String, Boolean 객체

const s = "hello";
s.toUpperCase(); //"HELLO"

s가 원시 문자열 타입이지만 toUpperCase함수가 들어있는 임시 String 객체를 만듬.
자바스크립트는 함수를 호출하는 즉시 임시객체를 파괴

3.14 배열

일반 객체와 달리 배열 콘텐츠에는 항상 순서가 있고, 키는 순차적인 숫자

자바스크립트 배열의 특징

  1. 배열의 크기 고정되지않음. 언제든 요소 크기 추가, 제거 가능
  2. 요소의 데이터 타입을 가리지않음
  3. 배열 요소는 0으로 시작

배열 요소에 값을 할당할 때 배열 길이나 그보다 큰 인덱스를 사용하면 배열 크기가 그에 맞게 늘어남

3.15 객체와 배열 마지막의 쉼표

3.16 날짜

내장된 Date 객체에서 담당
특정 날짜, 시간에 해당하는 객체 만들 때 : const halloween = new Date(2016, 9, 31, 19, 0);

3.17 정규표현식

RegExp 객체 사용

3.18 맵과 셋

은 배열과 비슷하지만 중복 비허용

3.19 데이터 타입 변환

숫자로 바꾸기

  1. Number 객체 생성자 사용
  2. 내장함수인 parseInt, parseFloat 사용 : parseInt 사용시 기수 넘길 수 있음(기본값 10진수), 숫자로 판단할 수 있는 부분 이외의 문자열은 무시함
const a = parseInt("16 volts", 10); 
// "volts" 무시. 10진수 16
const b = parseInt("3a", 16); 
//16진수 3a를 10진수로 바꿈. 결과는 58
const c = parseFloat("15.5 kph"); 
// "kph"무시. parseFloat는 항상 기수 10
  1. Date객체를 숫자로 바꿀 때는 valueOf() 메서드 사용

문자열로 변환

toString() 메서드 - 배열에서 쓰면 각 요소를 문자열로 바꾼 후 쉼표로 연결한 문자열 반환

불리언으로 변환

3.20 요약

  • 객체의 심볼의 이름으로 갖는 프로퍼티를 만드려면 대괄호를 써야한다
  • 자바스크립트에는 문자열, 숫자, 불리언, null, undefined, 심볼의 여섯가지 원시타입과 객체 타입이 있다
  • 자바스크립트의 모든 숫자는 배정도 부동소수점 숫자(더블)이다
  • 배열은 특수한 객체이며, 객체와 마찬가지로 매우 강력하고 유연한 데이터 ,타입이다

참조형과 원시형

💡QUIZ

  • 리터럴 : 런타임에서 값을 할당, 코드 상에 값을 나타내고 싶을 때
  • 자바스크립트가 허술한 언어이기 때문에, 우리가 엄격하게 알아야 하는 것.. 무영이의 띵언....
  • typeof 배열은 object
  • 자바스크립트의 모든 변수는 참조형 변수같다... 아닐수도?.
  • 숫자로 바꾸기 : Number, parseInt, 단항연산자
  • 문자열로 바꾸기 : toString, + ""
  • 불리언으로 바꾸기 : 앞에 !붙이기, Boolean, 조건문

0개의 댓글