강좌 : 유튜브 드림코딩 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
✍️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';
text = 1;
text = '7' + 5;
text = '8' / '2';