[JavaScript] 변수, 데이터 타입의 종류

jenny87879·2021년 1월 9일
0

JavaScript

목록 보기
2/3
post-thumbnail

JavaScript의 버전

  • JavaScript의 버전은 ECMAScript(줄여서 ES) 의 버전에 따라 결정되고, 이를 자바스크립트 실행 엔지이 반영 합니다.
    ES5, ES6...등으로 버전을 말합니다.
  • 2018년을 중심으로 ES6를 지원하는 브라우저가 많아서 몇년간 ES6 문법이 표전으로 쓰이고 있습니다.
  • ES6 문법은 ES5 문법을 포함하고 있어서 하위호환성 문제가 없습니다.
    다만 구 버전 브라우저 중에서는 ES6의 기능을 지원하지 않는 브라우저가 있으므로 Transpiling 이 필요합니다.(ES6문법을 각 브라우저의 호환 가능한 ES5로 변환하는 컨파일러)

JavaScript의 변수

  • 변수는 var, let, const로 선언할 수 있습니다.

1. var(function scope)

  • 변수를 선언. 추가로 동시에 값을 초기화.
  • var로 변수를 선언하는 경우 하기와 같이 '5'라는 로그를 남깁니다. 이는 x의 범위가 if문 블록이 아니라 x가 선언된 함수이기 때문입니다.
if (true) {
  var x = 5;
}
console.log(x); // 5

2. let

  • 블록 범위(scope) 지역 변수를 선언. 추가로 동시에 값을 초기화
  • let의 경우 함수 내부에 변수를 선언하면, 오직 그 함수 내에서만 사용할 수 있기때문에 지역변수라고 부름
if (true) {
  let y = 5;
}
console.log(y); // ReferenceError: y is not defined

3. const

  • 블록 범위 읽기 전용 상수를 선언
  • 변수 재선언, 재할당 불가능
const name = 'Hi!'
console.log(name) //Hi!

const name = "Hello!"
console.log(name) // Uncaught SyntaxError: Identifier 'name' has already been declared

name = "Bye!"
console.log(name) //Uncaught TypeError: Assignment to constant variable.

호이스팅(Hoisting)

  • 변수의 선언문을 유효 범위의 최상단으로 끌어올리는 행위
// var의 경우
console.log(name); //undefined
var name;
name = 'Hello World!'

//let 의 경우
console.log(name);//SyntaxError: Identifier 'name' has already been declared
let name;
name = 'Hello World!'

Data Types

1. Number

  • javascript 에서 숫자에 하나의 형식만 있습니다. 숫자는 소수점과 함께 또는 없이 쓸 수 있습니다.
  • number 라고 따로 선언하지 않아도 됨.
let x1 = 34.00;
let x2 = 34;
console.log(`value: ${x1}, type: ${typeof x1}`); //value: 34, type: number
console.log(`value: ${x2}, type: ${typeof x2}`); //value: 34, type: number
  • 하기와 같은 경우도 javascript의 숫자 타입이다.
const infinity = 1 / 0;
const negativeInfinity = -1 / 0;
const nAn = 'not a number' / 2;
console.log(infinity); //Infinity
console.log(negativeInfinity); //-Infinity
console.log(nAn); //NaN

2. String

  • javascript 에서 문자열은 하나의 형식을 가지고 있습니다.
  • 단일 또는 이중 따옴표를 사용할 수 있습니다.
const name = "ram";
const name1 = 'hari';
const plusName = `name are ${name} and ${name1}`

3. Boolean

  • Boolean타입의 값은 논리적 참, 거짓을 나타내는 truefalse 뿐입니다.

    |DATA Type|true로 변환되는 값|false로 변환되는 값|
    |:------:|:---:|:---:|
    |boolean|true|false|
    |string|비어 있지 않은 모든 문자열|""(빈 문자열)|
    |number|0이 아닌 모든 숫자(무한대 포함)|0, NaN|
    |object|모든 객체|null|
    |Undefined|해당 없음|undefined|

4. null

  • null의도적으로 변수에 값이 없다는 것을 명시할때 사용.

5. undefined

  • 선언 이후 값을 할당하지 않은 변수는 undefined 값을 가집니다.

6. symbol

  • symbol은 ES6에서 새롭게 추가된 타입으로 변경 불가능한 원시 타입의 값입니다.
  • 주로 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키(property key)를 만들기 위해 사용합니다.
profile
열심히 공부중인 초보 개발자

0개의 댓글