[JS] JS의 자료형에 대해 알아보자

HOU·2022년 7월 19일
0

JavaScript

목록 보기
10/20
post-thumbnail

자바스크립트의 변수 선언

let

  1. 자바 스크립트 변수는 ex 6에 추가된 let을 많이 사용한다.

    //1.Use strict (엄격한 사용)
    'use strict';
    
    //2. Variable
    // 자바 스크립트의 변수 선언은 let을 사용한다.
    let name = 'wonho';
    console.log(name);
    name = 'hello';
    console.log(name);

결과를 보면 wonho로 저장했다가 hello로 바뀐것을 확인 할 수 있다.

let은 전역변수와, 지역변수로 나뉘어져있다.

지역,전역

지역,전역변수

변수를 확인해 보면 처음에 사용한 변수들은(name) 은 변수들이 {}(중괄호) 안에서는 wonho, hello로 잘 출력되는 것이 보인다. 하지만 15줄의 name은 비어있는 값이 출력되는 것이 보인다.

중괄호 안에서 선언 된 변수는 중괄호 안에서만 정의 될 수 있다

globalName이라는 변수는 중괄호 밖에서 선언 되었지만, 중괄호 안에서도 변수가 제대로 정의 된 것을 볼 수 있다. 이것을 전역 변수라고 한다.

var (es 5) → 이제는 그만 써 사용 안해!

var

변수가 선언이 안되어 있는데,,, age = 4로 하면 뭐가 나올까?

var결과

4가 나온다.. 엥..? 변수 선언이 안되어있는데,,, 4가 나온다고?
자바스크립트의 개념 중 하나인 호이스팅이라는 것이다.

호이스팅이란 ? 어느 위치에 있던지 상단으로 옮겨서 변수를 선언해주는 시스템이다.

var age가 age = 4 보다 밑에 있지만 호이스팅 때문에, 위로 올라오게 되었다.
그리고 위에서 본 지역변수, 전역변수 개념도 var는 철저하게 무시한다.

const

너무나 중요한 const!
const는 너무 중요하다 why?
자바로 따지면 상수와 같다.

const
const를 사용하는 세가지의 주요한 이유가 존재하는데
1. 안전성, 다른 사람이 변수를 건드려도 변하지 않는다.
2. 안전하게 쓰레드를 돌릴 수 있다.
3. 사람의 실수를 최대한 줄일 수 있다.

자바 스크립트에서 변수 선언은 크게 두가지 let과 const로 나눌 수 있다.

immutable(변경없음) → const, mutable(변경 점 있음) → let으로 사용한다.

var는 잊어버리세요

자바스크립트의 변수 타입

원시적인, 하나의 item만 닮을 수 있는 변수들

  1. number

    1. 자바나 c언어는 number, decimal 타입을 정할 때 신경을 써주어야 하지만 자바 스크립트는 그럴 필요가 전혀 없다. 심지어 소수점을 입력할 때도 신경 쓰지 않아도 된다.
      int
      이나 -1을 0으로 나눌 경우 → 무한대의 수가 반환되고
      스트링을 정수로 나눌 경우 Nan타입을 반환한다.

    2. big int
      binint
      bigInt 타입이 추가되었다. 사용방법은 정수를 써주고 뒤에 n을 붙여주면 된다.
      최신기술이기 때문에 크롬이랑 firefox에서만 사용된다고 한다.

    3. string
      1. 문자열의 상태를 확인해보면 자바에서는 char라는 한단위 짜리 문자 타입이 있지만 자바스크 립트에선 그런거 없다. 한글자도 string이다.
      string
      greeting이라는 변수에 ‘hello’ 와 brendan을 합쳐서 hello brendan이 된것을 확인 할 수 있다.
      백팁( ` )을 사용하면 + 를 사용하지 않아도 string안에 변수를 넣을 수 있다.
      python의 포맷과 비슷한데 그것보다 효과도 더 짱짱 한 거 같다.

    4. boolean
      boolean

    boolean 은 true 와 false의 값을 리턴한다.

    • false : 0과 null, undefined, NaN은 boolean타입에 넣었을 경우 false를 리턴한다.
    • true : false에 명시 된 것 이외에 모든 값을 true로 리턴한다.

    1. symbol

      1. 아주 특이한 심볼! 심볼은 사용하면 고유한 식별자가 생긴다. 자바로 생각해보자면 배열을 만들었을 때 내부에 값은 값지만,, 식별하는 번지수는 다른거아 같은 건가 보다

      symbol생성
      같은 값인데 false가 리턴되는 것을 확인 할 수 있다.

      1. string이 동일 할 시 같은 식별자로 만들 수 있는 방법이 있는데

      symbol1

      Symbol.for() 라는 함수를 사용하면 true가 리턴 되는 것을 확인 할 수 있다.

      symbol2

      symbol 값을 확인 할 때는 symbol로만 사용하면 안되고 꼭 description 꼭 붙여 주도록 합시다.

      1. Dynamic typing : dynamically typed language

      앞에서 보았다시피 자바스크립트는 굉장히 유연한 언어 체계를 가지고 있다. 그래서 형변환도 생각보다 자유로운데 아래 코드를 보면서 확인해보자

      charAt(index)를 사용해 0번째 index에 있는 h값을 출력하였다.

    4번째 줄에서는 text 변수에 number type 1을 넣어서 string 타입을 number타입으로 형변환 하였다. 이게 생각보다 엄청나게 충격적인것이다. 자바에서는 상상 불가이다.

    5번째 줄에서는 ‘7’과 5를 더하여 스트링과 넘버를 더 하는데 이 경우에는 75가 나오고

    6번째 줄에는 4가 출력 되는 것을 확인 할 수 있다.


참조

엘리코딩 유튜브강의

profile
하루 한 걸음 성장하는 개발자

1개의 댓글

3줄 요약해주세요. 너무 깁니다.

답글 달기