자바스크립트)변수

minji jeon·2022년 5월 31일
0

자바스크립트

목록 보기
1/8
post-thumbnail

'use strict'
added in es5 , use this for vanila javascript
바닐라자바스크립트를 사용할때는 항상 strict모드를 사용할것

엄격 모드는 평범한 JavaScript 시멘틱스에 몇가지 변경이 일어나게 한다.
1. 기존에는 조용히 무시되던 에러들을 throwing합니다.
2. JavaScript 엔진의 최적화 작업을 어렵게 만드는 실수들을 바로잡습니다.
3. 가끔씩 엄격 모드의 코드는 비-엄격 모드의 동일한 코드보다 더 빨리 작동하도록 만들어집니다.
4. 엄격 모드는 ECMAScript의 차기 버전들에서 정의 될 문법을 금지합니다.

variable

let

  • (added in es6)
  • mutable
  • var를 대체해서 나온게 let

let name = 'ellie';
let name= 'hello';

이렇게 변경가능하다.

block scope

{let name = 'minji' }
block 안에다가 선언시 안에서만 유효 <-> global scope

  • 주의!!var 쓰지마!! (블럭스코프 없음,선언전에 값을 할당도 됨) var hoisting
  • hoisting : 어디 선언했느냐에 상관없이 제일 위로 선언을 끌어올려주는것

constance

  • 값이 변경안됨.
  • favor immutable data type always- security, thread safety, reduce mistakes

variable typess

  • primitive type
    • null = 너는 텅텅 비었어.
    • undefined = 선언은 되었지만 값은 할당되지 않았다.
    • symbol = 고유한 식별자로 다른 값과 중복되지 않는 유일무이한 값.주로 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용.
      const symbol1= Symbol('id');
      const symbol2= Symbol('id');
      console.log(symbol1 === symbol2) // false
      만약 true로 하고 싶다면(form를 쓴다)
      symbol for매서드는 키와 심벌 값의 쌍들이 저장되어 있는 전역 심벌 레지스트리에서 해당 키아ㅘ 일치하는 심벌 값을 검색한다. 검색에 성공하면 새로운 심벌값을 생성하지 않고 검색된 심벌값을 반환한다.
      const gsymbol1= Symbol.for('id');
      const gsymbol2= Symbol.for('id');
      console.log(gsymbol1 === gsymbol2) //true

추가로...
js의 특징 dynamic typing : 변수선언시 값의 type을 선언하지 않고 나중에 변경가능

text = '7' +5 ;
console.log(value${text}, type: ${typeof text}); //type = string
text = '8'+ '2';
console.log(value${text}, type: ${typeof text}); //type= number

profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글