let integer = 123; //정수
let negative = -123; // 음수
let double = 1.23; // 실수
let binary = 0b1111011; // 2진수
let octal = 0o173; // 8진수
let hex = 0x7b; // 16진수
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)}입니다.`);
원시는 data, stack에 보관되지만
객체는 Heap이라는 곳에 보관되어진다. (하나의 메모리 안에 다 들어갈 수 없기 때문에)
계산은 기본적인 사칙연산을 따른다.
//거듭제곱
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
일상적 논리를 수학적으로 표현한 것
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);
//숫자에서 문자
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
데이터 타입을 확인할 때 사용
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
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 값을 먼저 증가시키고 필요한 연산을 한다.