JavaScript 기초-2

sue·2020년 12월 6일
0

javaScript note

목록 보기
3/9

데이터타입

JS 데이터 타입

자바스크립트의 데이터 타입은 한 가지의 심플한 데이터를 담을 수 있는 원시타입조금 더 복잡한 데이터를 담을 수 있는 오브젝트 타입으로 나뉜다.

원시타입은 string, number, boolean, bigint(숫자타입과 비슷하지만 더 큰 숫자 범위 할당 가능), symbol, null, undefined 총 7가지가 있고, 그 외는 Obeject 타입에 속한다. (function, array...)

  • Number (숫자)
  • String (문자열)
  • Boolean (논리값 true/false)

false: 0, -0, '', null, undefined, NaN
true: -1, 'hello', []... (빈 배열은 object이기 때문에 무언가 데이터가 있다면 다 true)

  • Null : 값이 없는 것(고의적으로 설정)
  • Undefined: 아직 값이 설정되지 않은 것
let criminal;
console.log(criminal); // undefined
  • Symbol
    고유 식별자를 만들 떄 사용되는 심볼형
    symbol()에 인자(description) 넣어 변수에 담으면, 데이터 값이 같아도 변수를 비교하면 false 반환
  • BigInt
    길이의 제약 없이 정수를 다룰 수 있게 해주는 숫자형

변수와 상수

let vs const vs var

변수 let

: 바뀔수 있는 값, 한번 값을 선언하고 나서 바꿀 수 있음

let value = 1;
console.log(value); // 1
value = 2;
console.log(value); // 2 

한번 선언했으면 똑같은 이름으로 선언 불가

let value = 1;
let value = 2; // 오류 발생

단, 다른 블록 범위에서는 사용 가능

상수 const

: 한번 선언하고 값이 바뀌지 않는 값, 변수와 마찬가지로 같은 이름 선언 불가

const a = 1;
a = 2; // "Error: "a" is read-only" 
const a = 2; // "a" has already been declared 

변수를 선언하는 또 다른 방법 var

똑같은 이름으로 여러번 선언 가능 but, 모던 자바스크립트에서는 더이상 사용 X

연산자

비교 연산자

두 값을 비교 할 때 사용

const a = 1;
const b = 1;
const equals = a === b;
console.log(equals);

== vs === ?

= 문자가 3개 있을 때와 2개 있을 떄의 차이점은 2개 있을때에는 타입 검사를 하지 않는다는 것

const a = 1;
const b = '1';
const equals = a == b;
console.log(equals);

숫자 1과 문자 '1' 동일한 값으로 간주
== 대신 === 를 사용 권장
두 값이 일치하지 않는지 확인 할 때에는 !== 를 사용
!= 사용 시 타입 검사 X


조건문

if-else if 문

const a = 10;
if (a === 5) {
  console.log('5입니다!');
} else if (a === 10) {
  console.log('10입니다!');
} else {
  console.log('5도 아니고 10도 아닙니다.');
}
// 10입니다!
// a = 5 -> "5입니다!"
// a = 7 -> "5도 아니고 10도 아닙니다."

switch/case 문

특정 값이 무엇이냐에 따라 다른 작업을 하고 싶을 때 사용

const device = 'iphone';

switch (device) {
  case 'iphone':
    console.log('아이폰!');
    break;
  case 'ipad':
    console.log('아이패드!');
    break;
  case 'galaxy note':
    console.log('갤럭시 노트!');
    break;
  default:
    console.log('모르겠네요..');
}
// device 값에 따라서 다른 결과가 출력

각 case 에서 실행할 코드를 작성하고 맨 마지막에 break;
break 를 하지 않으면 그 다음 case 의 코드까지 실행하기 때문!
default: 는 device 값이 우리가 case 로 준비하지 않은 값일 경우

0개의 댓글