[JavaScript] 2. 자료형

username_oy·2023년 7월 7일

JavaScript

목록 보기
2/3
let integer = 123; //정수
let negative = -123; // 음수
let double = 1.23; // 실수

let binary = 0b1111011; // 2진수
let octal = 0o173; // 8진수
let hex = 0x7b; // 16진수

문자형(String)

let name = "Kim";
let name = 'Kim'; // 코드 내에서 문자를 구분하기 위한 따옴표

// 특수문자 출력하는 법
console.log("I'm a boy."); // 작은따옴표를 써야할 경우 큰 따옴표로 감싸주는 것이 편하다.
console.log("He said \"I'm a boy.\"");
console.log('He said "I\'m a boy."');
console.log("He said \"I\'m a boy.\"");
console.log('He said \"I\'m a boy.\"');
// 역슬래시(\) : 문자열 내의 기호
// 역슬래시는 가독성이 좋지 않아서 역슬래시 대신 백틱(`)을 사용
console.log(`He said "I'm a boy."`);

// 줄바꿈(\n) / 탭(\t)
console.log('안녕!\nKim\t\t 반가워');

// 템플릿 리터럴(문자열 내부에 변수를 표현할 때) 
let id = 'Kim';
let greetings = "'Hi!, " + id + "\n즐거운 하루!'";

greetings = `'Hi!, ${id}
즐거운 하루!'`;

let myNumber = 3;

function getTwice(x) { 
  return x * 2;
}

console.log(`${myNumber}의 두 배는 ${getTwice(myNumber)}입니다.`);

null과 undefined

null

  • 확실하게 비어있는 것
  • null이라는 메모리에 null이라는 object가 할당

undefined

  • 정해지지 않은 상태
  • undefined는 그냥 undefined로 출력

객체타입(Object)

🆎객체

  1. 데이터 타입 중 복합 데이터인 객체는
  • 연관있는 데이터 문자열을 묶어서 보관할 수 있는 큰 Object를 말한다
  • 함수를 함께 묶어둘 수 있는 것을 객체라 함
  • 여러가지의 데이터를 함께 묶어놓은 것을 객체
  • {key:value} => value에는 원시(primitive), 객체(object) 둘 다 쓸 수 있다.

원시는 data, stack에 보관되지만
객체는 Heap이라는 곳에 보관되어진다. (하나의 메모리 안에 다 들어갈 수 없기 때문에)

  • 객체는 셀 여러개에 걸쳐 들어가게 되는데
  • 변수 이름은 메모리 셀을 가리키는데, 이 메모리셀 안에는 실제 object가 들어있는 메모리 주소를 가지고 있다.
  • 변수는 객체가 할당된 곳의 주소를 가지고 있다.

값과 참조의 차이

원시타입

  • 메모리 셀 안에 값이 바로 들어가있다.
  • 변수가 그 메모리 자체를 가리키고 있다.

객체타입

  • 참조값, 메모리 주소가 변수에 들어있다.

숫자형(Number)

계산은 기본적인 사칙연산을 따른다.

//거듭제곱
console.log(2 ** 3); // 8

//나머지
console.log(7 % 3); // 1

//덧셈
console.log(1 + 8) // 9

//뺄셈
console.log(7 - 6) // 1

//곱셈
console.log(2 * 2 * 2) // 8

//나눗셈
console.log(5 / 2); // 2.5

불 대수(Boolean)

일상적 논리를 수학적으로 표현한 것

let= true;
let 거짓 = false;
console.log();
console.log(거짓);

AND 연산
x와 y가 모두 참일 때만 x AND y가 참
참고로 왼쪽이 false일 경우 오른쪽은 볼 필요 없이 false이다.

OR 연산
x와 y중 하나라도 참이면 x OR y는 참
AND 연산과 반대로 왼쪽이 true라면, 오른쪽은 볼 필요 없이 true가 됩니다.

NOT 연산
반대로 뒤집어주는 역할

ex) x가 참이면 NOT x는 거짓
NOT 2는 1보다 작다 -> 2는 1보다 작지 않다 = true

Falsy 거짓인 값 (느낌표 2개(!!)를 붙이면 값을 True나 False값으로 변환해준다.

console.log(!!0);
console.log(!!-0);
console.log(!!'');
console.log(!!null);
console.log(!!undefined);
console.log(!!NaN);

Truthy 참인 값

console.log(!!1);
console.log(!!-1);
console.log(!!'text');
console.log(!!{});
console.log(!!Infinity);

형 변환(Type Conversion)

//숫자에서 문자
let x = 12;
console.log(x); // 12
console.log(String(x)); // 문자열 12
console.log(typeof x); // number
console.log(typeof String(x)); // string

//불린에서 문자
let y = true;
console.log(y); // true
console.log(String(y)); // 문자열 true
console.log(typeof y); // boolean
console.log(typeof String(y)); // string

//문자에서 숫자
let a = '문자';
console.log(a); //문자
console.log(Number(a)); // NaN (숫자가 아니다)
console.log(typeof a); // string
console.log(typeof Number(a)); // number

//불린에서 숫자
let b = true;
console.log(b); // true
console.log(Number(b)); // 1
console.log(typeof b); // boolean
console.log(typeof Number(b)); // number

연산자

typeof 연산자

데이터 타입을 확인할 때 사용

let name = "kim";

console.log(typeof 1); //number
console.log(typeof name); //string
console.log(typeof true); //boolean
console.log(typeof "hi"); //string
console.log(typeof null); //object
console.log(typeof undefined); //undefined

산술 연산자

console.log(4 + '2'); // 42 문자를 연결하는 기능이 더 강하다
console.log(4 + 2); // 6 
console.log(4 - true); // 3
console.log(4 * false); // 4 * 0 
console.log(4 / '2'); // 2
console.log('4' ** true); // 4
console.log(4 % 'two'); // NaN

관계 비교 연산

console.log(2 < '3'); // true
console.log(2 > true); // 2 > 1 -> true
console.log('2' <= false); //  2 <= 0 -> false
console.log('two' >= 1); // NaN >= 1 비교불가 -> false

동등 비교 연산

console.log(1 === '1'); // === 일치, !== 불일치 false
console.log(1 === true); // false
console.log(1 == '1'); // 동등, 부등 true
console.log(1 == true); // true

단항 연산자(Unary Operators)

let a = 5;
a = -a; // -1 * 5
a = -a; // -5
a = +a; // +(-5)
let boolean = true;
console.log(boolean); // true
console.log(!boolean); // false
console.log(!!boolean); // 

할당 연산자

let a = 1;
a = a + 2; // a += 2;
a = a - 2; // a -= 2;
a = a * 2; // a *= 2;
a = a / 2; // a /= 2;
a = a % 2; // a %= 2;
a = a ** 2; // a **= 2;

증감 연산자

let a = 0;
console.log(a);
a++; // a = a + 1; // a++ 필요한 연산을 하고, 그 뒤 값을 증가시킴
a--; // a = a - 1;

  • a++ 필요한 연산을 하고, 그 뒤 값을 증가시킴
  • ++a 값을 먼저 증가시키고 필요한 연산을 한다.
profile
프런트엔드 개발자로의 여정

0개의 댓글