JavaScript 1. Variable

khxxjxx·2021년 4월 26일
0

드림코딩 by 엘리

목록 보기
1/11

강좌 : 유튜브 드림코딩 by 엘리

use strick

  • 'use strick'; : ES5부터 적용되는 키워드로, 안전한 코딩을 위한 하나의 가이드라인

1. Variable

📄 Variable

  • rw(read/write)
  • mutable : 값을 계속해서 바꿀 수 있다

let (added in ES6)

  • block scope : {블럭}안에 사용하게 되면 블럭 밖에서는 블럭안에있는 내용들을 볼수 없게 된다
  • Global Scope : 블럭을 쓰지않고 바로 정의해서 쓰는 변수들, 이러한 아이들은 어느 곳에서나 접근이 가능하다
  • 글로벌한 변수들은 어플리케이션이 실행되는 순간부터 끝날때까지 항상 메모리에 탑재되어있기 때문에 최소한으로 쓰는것이 좋다

var

  • 선언하기 전에 값을 할당하는것이 가능하다
  • var hoisting : 어디에 선언했나 상관없이 항상 제일위로 선언을 끌어올려주는 것
  • {블럭}을 무시한다
  • 위와같은 내용 때문에 더이상 사용하지 않는다

✍️Constant

  • r(read only)
  • immutable : 값을 절대 변경할 수 없다

const

  • 보안이 좋다
  • 앞으로 변경할 이유가 없으면 웬만해선 const를 이용
  • 나중에 코드를 변경하거나 다른 개발자가 코드를 바꿀때 실수를 방지할 수 있다

✍️Mutable data types

  • all objects by default are mutable in JS

✍️Immutable data types

  • premitive types
  • frozen objects (object.freeze())

✍️Variable types

primitive

  • 더이상 작은 단위로 나누어질 수 없는 한가지의 아이템 (single item)
  • number, string, boolean, null, undefiedn, symbol
  • value 값 자체가 메모리에 저장

object

  • 싱글아이템들을 여러개 묶어서 한단위, 한박스로 관리할 수 있게 한다
  • box container
  • object를 가르키는 reference(참고)가 메모리에 저장

function

  • first-class function

✍️Primitive

number

  • -2⁵³ ~ 2⁵³ 범위 표현가능
  • infinity(1 / 0;), -infinity(-1 / 0;), NaN('not a number' / 2;)
  • bigInt (number보다 큰 범위의 수) : 숫자뒤에 n을 붙여서 사용 최근에 추가된 것으로 아직 지원하지 않는 브라우저가 많다

string

  • template literals(template string)
  • 백틱(`), 달러($), 중괄호{} 사용
// 예시
console.log('value: ' + 변수명 + 'type: ' + typeof 변수명);  // 사용전
console.log(`value: ${변수명}, type: ${typeof 변수명}`);  // 사용후

boolean

  • false : 0, null, undefined, NaN, ' '
  • true : any other value

null

  • 아무것도 아닌 값

undefined

  • 선언은 되었지만 아무런 값이 할당되어 있지 않은 값

symbol

  • 고유한 식별자가 필요할때
  • 동시 다발적으로 일어날 수 있는 코드에서 우선순위를 주고싶을때
  • 식별자를 스트링을 이용해서 사용하면 다른 모듈이나 다른 파일에서 동일한 스트링을 썼을때 동일한 식별자로 간주된다
  • 심볼은 동일한 스트링을 이용해서 만들어도 각 다른 심볼로 만들어진다 만약 동일한 심볼을 만들고 싶으면 symblo.for('') for 를 붙이면 된다
  • 심볼은 출력할때 그냥 출력하면 에러가 발생해서 변수명.description을 이용해서 스트링으로 변환해서 출력

✍️Dynamic typing

  • 선언할때 어떤 타입인지 선언하지 않고 런타임에서 할당된 값에 따라서 타입이 정해진다
// 예시
let text = 'hello';   // string
text = 1;  // number
text = '7' + 5;  // string
text = '8' / '2';  // number
profile
코린이

0개의 댓글