코규리
article thumbnail

 

 변수와 상수


let, const

  • 변수보다 상수가 권장되어야지~ ETRI 기억나지, 규리야?
  • 예외는 있지. 루프라든지.

 

 식별자 이름


식별자: 변수, 상수, 함수의 이름

  • 식별자 작성 조건: 글자, $, _ 로 시작할 것
    • js는 달러기호를 특수문자로 사용하지 않는다
  • 유니코드 문자 가능 ex) Ʃ, Ò
  • 예약어 사용 불가
  • camelCase, snake_case 언급
  • cf) 리터럴 = 찐 값. (변수에 삽입된 찐 값)

 

원시타입과 객체


원시타입: 숫자, 문자열, 불리언, null, undefined, 심볼

  • js의 내장된 객체 타입: Array, Date, RegExp, Map&WeakMap, Set&WeakSet
  • Number(숫자와 대응), String(문자열), Boolean(불리언)
    • 이 세 가지는 대응하는 개체에 실제 값이 저장되는 않는다
    • 대응하는 원시 값에 기능을 제공하는 역할을 한다

 

*IEEE 764 배정도 (부동소수점, 더블)


  • 아주 작은 수에 대해서 정확하게 표현하지 못 함.
    • 0.1 + 0.2 = 0.3000...04
    • 10*3.14 = 31.40000...002
    • 유한한 메모리 안에서 가능한 한 정확히 짐작하려다 생긴 결과
  • js에서는 숫자형 데이터 타입이 하나밖에 없다 (double)
    • 이것의 단점: 정밀한 소수점 연산이 필요한 app에서 쓸 수 없음
    • 10진수, 2진수, 8진수, 16진수의 네 가지 숫자형 리터럴을 인식함
      • 10진수 리터럴: 소수점 없는 정수, 소수점 있는 10진수, 과학에서 사용하는 지수 표기법 사용 가능
let count = 10;  // 더블
const blue = 0x000ff; //16진수
const umask = 0o0022; // 8진수
const roomTemp = 21.5 // 십진수
const c = 30e6; //지수 3.0*10^6
const e = -1.6e-19; //지수 10^-19 
const inf = Infinity; // 찐 수학적으로는 무한은 숫자가 아니지만 일종의 플레이스 홀더
const ninf = -Infinity; //위왁 같은 논리. 플레이스 홀더
const nan = NaN; //숫자 아님, 플레이스 홀더

 

 

⚑ 문자열


이스케이프

const dialog1 = "He looked up and said \\"dont't do That!\\" to Max";
const dialog2 = "He looked up and said \\'dont't do That!\\' to Max";
const s = " look at that! \\\\ ";
  • 큰따음표(””)가 어디서 끝나는지 명확하게 할 수 있게 된다 (그런데 티스토리에선 안 먹히는 것 같다. )
  • \도 마찬가지

특수문자

  • \\n  \\r  \\t  \\’  \\”  \\``  \$  \\  \uXXXX  \xXX`
  • \\0 \\v \\b \\f

숫자와 문자열

const result1 = 3 + '30' ; //3이 문자열로 변함 (result: '330')
const result2 = 3 * '30'; // '30'이 숫자로 변환 (result: 90)
  • 숫자가 필요할 땐 숫자를 써라. 문자열이 필요할 땐 문자열을 써라.
  • 사용자의 입력은 거의 항상 문자열로 들어오며, 이를 숫자로 환산하는 건 개발자의 몫이다

심볼

const RED = Symbol("The color of a sunset!");
const ORANGE = Symbol("The olor pf a sunset!");
RED == ORANGE // result: flase
  • 심볼은 항상 유일하다
    • 유일하다는 점을 제외하곤 원시 값의 모든 특징을 가진다 (확장성 있는 코드 작성 가능)
    • 언제 사용하는가? 다른 식별자와 혼동해서는 안 되는 고유한 식별자가 필요할 때.

null과 undefined

let currentTemp; // 임시로 undefined(정의 되지 않은 값) 값을 가짐
const targetTemp = null; // null(아직 모름)
currentTemp = 19.4; // null 아님(이제 암)
curretTemp = undefined // 초기화 되지 않은 걸로 다시 인식 ( 권장하지 않음)
  • null = 아직 값을 모른다 (이게 좀 더 많이 쓰이겠지.)
  • undefined = 정의되지 않았다

객체

const obj = {};
obj.color="yellow"  // 객체에 프로터이와 멤버 추가. (
obj["not an identifier"] =3;

console.log(obj["not an identifier"]; //3
console.log(obj.color) //yellow
console.log(obj[color]) //yellow
console.log(obj["color"] //yellow

/* 심볼 프로퍼티에 접근하기 */
const SIZE = Symbol();
obj[SIZE] = 8;
console.log(obj[SIZE]); //8