타입(data type)이란?
- 타입(data type)이란 프로그램에서 다룰 수 있는 값의 종류를 의미한다.
- 자바스크립트에는 여러 가지 형태의 타입을 미리 정의하여 제공하고 있으며, 이것을 기본 타입이라고 한다.
- 타입마다 다른 속성과 메서드가 있다.
- 크게 원시 자료형과 참조 자료형으로 구분할 수 있다.
immutable
)이며 pass-by-value(값에 의한 전달)이다.
- 변수 x를 변수 y에 할당하는 경우, 변수 x의 값은 원시 자료형이기 때문에 x의 값이었던 2를 복사하여 할당되고, y에 3이 할당되어도 여전히 x는 2이다. x의 값을 y로 복사하여 할당했기 때문이다. Line 3의 코드가 변수 x에 영향을 미치지 않는다.
let x = 2; let y = x; y = 3; // x = 2
+
, 뺄셈 -
, 곱셈 *
, 나눗셈 /
연산이 대표적let integer = 10; // 정수
let double = 10.12; // 실수
let negative = -20; // 음의 정수
let binary = 0b01000001; // 2진수
let octal = 0o101; // 8진수
let hex = 0x41; // 16진수
let thirdNum = 10e6; // 10000000
let fourthNum = 10e-6; // 0.00001
' '
혹은 " "
따옴표로 묶음' '
안에 따옴표를 넣어야 할 경우 " "
큰따옴표 사용let str = "Hello"; // 큰따옴표를 사용한 문자열
let str2 = 'Single quotes are ok too'; // 작은따옴표를 사용한 문자열
let thirdStr = "내 이름은 '홍길동'이야" // 작은따옴표는 큰따옴표로 둘러싸인 문자열에만 포함될 수 있음
let fourthStr = '내 이름은 "홍길동"이야' // 큰따옴표는 작은따옴표로 둘러싸인 문자열에만 포함될 수 있음
let num = 10;
let str = "JavaScript";
document.getElementById("result").innerHTML = (num + str); // 10JavaScript
``
(백틱)으로 감싸줌let a = 20;
let b = 8;
let c = "자바스크립트";
let str = `저는 ${a+b}살이고 ${c}를 좋아합니다.`;
console.log(str); //저는 28살이고 자바스크립트를 좋아합니다.
let isGreater = 4 > 1; // true (비교 결과: "yes")
let age; // 초기화하지 않았으므로 'undefined'가 출력
typeof secondNum; // 정의되지 않은 변수에 접근하면 undefined 값을 반환함
let age = null; // object 타입의 null 값
null == undefined; // true
null === undefined; // false
let sym = Symbol("javascript"); // symbol 타입
let symObj = Object(sym); // object 타입
let id = Symbol(); // id는 새로운 심볼이 됩니다.
let id = Symbol("id"); // 심볼 id에는 "id"라는 설명이 붙습니다.
let id1 = Symbol("id");
let id2 = Symbol("id");
alert(id1 == id2); // false -> 동일 연산자(==)로 비교 시 false가 반환
{...}
을 사용하여 객체를 만든 경우, [...]
대괄호를 사용해야 함let id = Symbol("id");
let user = {
name: "John",
[id]: 123 // "id": 123은 안됨, 심볼이 아닌 문자열 "id"가 됨
};
object
로 구분되는 모든 자료형)는 참조 자료형이며, 대표적으로 객체(object)
, 배열(array)
, 함수(function)
가 있다.
- second는 first가 가지고 있는 주소를 그대로 가지고 있다. 값만 복사했다면 second의 0번째 인덱스에 있는 요소를 변경하면 first는 변경되지 않겠지만, 주소를 공유하고 있기 때문에 first도 똑같이 변경된다.
let first = [10, 20, 30, 40]; let second = first; second[0] = 5;
- first === second의 결과는 true이다.
- first의 0번째 인덱스에 있는 요소는 5이다.
- first와 second는 같은 주소를 공유하고 있다.
{ }
중괄호를 이용해 만들고, 중괄호 안에는 '키(key) : 값(value)'쌍으로 구성된 프로퍼티(property)를 여러 개 넣을 수 있다. 키(key)에는 문자형, 값(value)에는 모든 타입이 허용됨let user = { // 객체
name: "John", // 키: "name", 값: "John" -> 첫번째 프로퍼티
age: 30 // 키: "age", 값: 30 -> 두번째 프로퍼티
"likes birds": true // 복수의 단어는 프로퍼티 이름을따옴표로 묶어야 한다.
};
let arrLit = [1, true, "JavaScript"]; // 1,true,JavaScript
typeof
연산자로 타입을 확인해볼 수 있다.기본 문법
typeof 값;
console.log(typeof 1)
> number
console.log(typeof '1')
> string
console.log(typeof 1 < 2)
> false
let number = 1;
console.log(typeof number)
> number
let string = '1';
console.log(typeof string)
> string