TIL 10. JS(Variable, Data types)

Variable

Variable은 변수라고도 불리며, 변경될 수 있는 값을 의미한다.

이러한 변수를 만들기 위한 키워드는 3가지가 있다.

  • var
  • let
  • const

let

let은 변수를 만들기 위한 키워드이며,
let으로 선언한 변수는 언제든지 변경이 가능하다.

ex
let name = 'syeon';
console.log(name);
name = 'hello';
console.log(nane);

첫번째 console의 값은 syeon이 될 것이다.
하지만 두번째 console의 값은 hello가 된다.


const

const도 마찬가지로 let과 같은 변수를 만들기 위한 키워드이다.

하지만 let과 달리 const는 한번 선언한 변수는 변경이 불가능하다.

const name = 'syeon';
console.log(name);
name = 'hello';
console.log(name);

첫번째 console에서는 당연히 syeon이 출력될 것이지만,
두번째 console는 error가 발생한다.


var

var는 let과 유사하며, let이 생기기 이전까지 사용해왔던 키워드이다.

하지만 여러 문제점이 발생할 가능성이 있어서 현재는 잘 사용하지 않는 키워드이다.

ex1
age = 4;
var age;
console.log(age);
age = 4;
let age;
console.log(age);

두가지 모두 age를 변수라고 선언하기 전,
age는 4라고 값을 지정하였다.

여기서 var를 사용한 변수는 4가 출력되지만,
let을 사용한 변수는 error가 발생한다.

ex2
let globalName = 'global name';
{
let name = 'syeon'; 
console.log(name); (1)
console.log(globalName); (4)
}
console.log(name); (2)
console.log(globalName); (3)

(1)=syeon, (2)="", (3)=global name, (4)=global name을 각각 출력한다.
{}(block scope) 안에서 선언된 변수는 [] 밖에서 값을 가지지 못한다.

하지만, var는 이러한 {}(block scope)의 경계를 무시한다.


Variable types

변수의 종류로는 총 7가지가 있으며,
기본 자료형으로 number, string, boolean, null, undefined, symbol이 있고
object가 별도로 있다.

number

number은 말 그대로 숫자로 되어있는 변수이다.
특별한 숫자로
1 / 0의 Infinity, -1 / 0의 -Infinity, 'not a number' / 2의 NaN(Not a Number)가 있다.

string

string은 문자열이다.
''나 ""로 text가 string이라는 것을 알려준다.

const syeon = 'c'; (1)
const name = 'suYeon'; (2)
const all = 'c' + name; (3)
const another = `c ${name}` (4)

(1)= c, (2)=suYeon, (3), (4)는 동일하게 c suYeon이다.
이렇게 문자열을 합치려할 때, +를 사용하거나, 문자열 전체를 `(백틱)으로 감싸고
변수를 ${} 안에 넣는다.


boolean

boolean은 변수가 true나 false 둘 중 한가지만 될 수 있다.
그래서 변수를 선언할 때, 참과 거짓을 나타낸다.

const oneEqualOne = true;       -> true
const test = 3 < 1;		-> false

null

null은 변수의 값이 비어있는 상태이다.

undefined

undefined는 변수의 값이 없는 상태이다.

null은 '비어있다'라는 하나의 변수를 가지고 있고,
undefined는 아예 변수를 가지고 있지 않는다는 의미이다.


symbol

symbol은 그 값 자체로 고유한 값으로 만드는 data type이다.

const symbol1 = Symbol('id');
const symbol2 = Symbol('id');
const.log(symbol1 === symbol2); ----> false

값이 같더라도, symbol값은 이와같이 그 자체로 고유한 값을 가진다.


좋은 웹페이지 즐겨찾기