Java Script
에서 사용하는 값은, 항상 문자열이나 숫자형같은 자료형에 속하게 됩니다.
자료형의 종류는 기본적으로 8가지가 있습니다.
기존의 자료형에서 다른 자료형으로 바뀔 수 있는 언어를 동적타입언어라고 합니다
let message="hello";
message="123456";
/* */
처음 자료의 타입은 문자열이지만, 숫자형으로도 바뀔 수 있네요.
원시타입 중 하나인 자료형
정수와 소수점 숫자들을 숫자형이라고 합니다.
일반적인 숫자 이외에 Infinity
-Infinity
NaN
같은 특수 숫자 값도 포함됩니다.
❤️ 형식
let n=123;
n=14.512;
alert( 1/0 ); // 무한대
alert(InFinity); // 무한대
/* */
infinity는 어떤 숫자들보다 큰 무한대를 나타냅니다.
또는 어떤 숫자던 0으로 나누면 무한대가 됩니다.
alert( "문자열" / 2 ); // 문자열을 숫자로 나누므로 오류가 발생 , NaN
/* */
부정확한 수학적인 연산과정 중에 오류가 발생했을 떄 NaN이 발생합니다.
대표적으로 문자열을 정수로 나눌 때, 연산이 성립되지 않으므로 NaN이 발생합니다.
🔔 NaN
수학연산 과정중에 어떠한 오류가 발생해도 스크립트에 치명적인 손상이 발생하지 않음
연산과정중에 오류가 발생하면, 단지NaN
값을 반환하며 연산이 종료되기 때문입니다.
Java Script
에서는 2의 53제곱-1
보다 큰 값이나 -2의 53제곱-1
보다 작은 값은
숫자형을 사용해서 나타낼 수 없습니다.
BigInt
자료형을 사용한다면, 숫자의 크기에 제한없이 숫자를 사용할 수 있습니다.
❤️ 형식
const BigInt=12391939123921n; // BigInt 자료형을 사용할 때는, 숫자의 뒤에 `n`을 붙여야 한다.
문자열을 나타내는 자료형
"
'
`
따옴표를 사용해서 문자열을 나타냅니다.
문자열에는 공백을 사용할 수 있습니다.
let str = "Hi"; // Hi 문자열을 출력
let str2 = 'Hello'; // Hello 문자열을 출력
let phrase = `Hello Everyone ${str}`; // Hello Everyone와 Hi 문자열을 출력
/* */
`"` 큰따옴표와 `'` 작은 따옴표의 차이는 없습니다. 일반적으로 문자열을 출력할 때 사용합니다.
` 역따옴표를 사용해서 문자열을 묶어주면 ${ } 괄호를 사용해 변수나 표현식을 넣을 수 있습니다.
let name = "John";
alert(`Hello ${name} Good bye`); // Hello John Good bye, 문자열에 변수 삽입
alert(`value ${1+2}`) // 문자열에 수학 표현식 삽입
/* */
문자열안에 `역따옴표(백틱)을 사용하면, ${ } 괄호안에 들어간 값이 수학연산이라면
연산이 끝난 결과 값이 문자열로 표시되고, 문자열이라면 문자열로 표시됩니다.
변수명이라면 변수에 저장된 데이터가 문자열로 표시됩니다.
let name="John";
alert("Hello ${1+4}"); // 출력 : Hello ${1+4}
alert("Hello $['everyone']"); // 출력 : Hello $["everyone"]
alert("Hello $[name]"); // 출력 : Hello $[name]
let name = "Dumbo Octopus"
console.log(name[0]); // 출력 : D
/* */
문자열은 인덱스라는 공간에 [0]~[???] 까지 한 글자씩 저장되어 있습니다.
name 변수에 [0]번째 인덱스에는 'D'라는 문자열이 저장되어 있기에 출력해보면 'D'만 출력되게 됩니다.
let name = "String";
console.log(name.length); // 출력 : 6
/* */
length 프로퍼티는 문자열의 길이를 알려줍니다.
let userName = "minsu" + "dabin";
console.log(userName); // 결과 : minsudabin
/* */
문자열간의 덧셈을 진행하면 병합이 됩니다.
논리형은 true
와 false
두 가지 값만 사용합니다.
주로 질문에 대한 yes
no
같은 참이냐 거짓이냐를 나타낼 때 사용하는 자료형입니다.
❤️ 형식
let nameFieldChecked = true; // 네임필드를 확인 했습니까? = yes
let ageFieldChecked = false; // 나이필드를 확인 했습니까? = no
❤️ 비교연산자의 결과는 논리형으로 나타난다.
let number = 2 > 1;
alert(number); // 2는 1보다 크기 때문에 참, 결과 값으로 true가 출력 됩니다.
null
이라고 합니다.알 수 없는 값
, 존재하지 않는 값
, 비어있는 값
을 정의할 때 사용합니다.❤️ 형식
let age = null; // 나이를 알 수 없다.
값이 할당되지 않는 상태를 나타낼 떄 사용하는 자료형
변수는 선언했지만 값을 할당하지 않는다면 undefined
상태가 됩니다.
또는, 알 수 없는 값이 반환될 때 undefined
를 반환하기도 합니다.
❤️ 형식
let age;
alert(age); // undefined 상태
객체형을 제외한 다른 자료형들은, 자신에 해당되는 문자열이나 숫자형등 타입 1가지만
표현할 수 있지만, 객체는 데이터 컬렉션이나 복잡한 개체를 표현할 수 있습니다.
심볼형은 객체의 고유한 식별자를 만들 때 사용합니다.
인수의 자료형을 반환합니다.
자료형에 따라서 처리방식을 다르게 하거나, 변수에 대한 자료형을 알아낼 때 사용합니다.
❤️ 문법
typeof 자료형 or 값 // typeof 뒤에 오는 값에 대한 자료형을 반환 값으로 확인 시켜준다.
typeof undefined // 반환 값 : undefined
typeof 0 // 반환 값 : number
typeof 10n // 반환 값 : bigInt
typeof true // 반환 값 : boolean
typeof "string" // 반환 값 : string
typeof Symbol("id") // 반환 값 : symbol
typeof Math // object
/* 수학연산을 제공하는 내장 객체 : object가 출력 된다. */
typeof null // object2
/* null의 결과는 object 객체 입니다. null은 객체가 아니지만, 하위 호환성을
유지하기 위해서 수정하지않고 내버려둔 상태입니다. */
typeof alert // function
/* typeof 연산자는 피연산자가 함수라면, function(함수)를 반환합니다.
피연산자인 alert는 함수이므로, function을 반환합니다. */