타입
타입은 크게 일곱 가지로 나뉘어진다. 오늘은 그 중 세 가지인 Number, String, Boolean 에 대해 정리한다.
숫자(Number)
typeof 100; // 정수, 'number'
typeof -100; // 음수, 'number'
typeof 100.123 // 실수, 'number'
console.log(1+2); // 3
console.log(1-2); // -1
console.log(1*2); // 2
console.log(1/2); // 0.5
console.log(9%2); // 1(나머지)
Math.floor(100.621); // 100, 내림하여 반환
Math.ceil(100.621); // 101, 올림하여 반환
Math.round(100.621); // 101, 반올림하여 반환
Math.round(100.421); // 100, 반올림하여 반환
Math.abs(-100); // 100, 절대값을 반환
Math.abs(100); // 100, 절대값을 반환
Math.sqrt(4); // 2, 루트값(제곱근)을 반환
Math.sqrt(2); // 1.4142135623730951, 루트값(제곱근)을 반환
Math.pow(2, 5); // 32, 제곱하여 반환
문자열(String): 자연어를 표현하기 위한 데이터 타입이다.
typeof '바나나'; // 'string'
typeof "바나나"; // 'string'
typeof `바나나`; // 'string'
'바나나' + '는 맛있다.' // '바나나는 맛있다.'
1 + '1' // 11
const str1 = '안녕하세요 반갑습니다.';
const str2 = 'javascript'
console.log(str2); // 10
console.log(str1); // 12
console.log(str1[3]); // a
console.log(str1[6]); // 반
'HELLO WORLD'.toLowerCase(); // 'hello world', 문자열을 소문자로 변경
'hello world'.toUpperCase(); // 'HELLO WORLD', 문자열을 대문자로 변경
'hello '.concat('world'); // 'hello world', 연결 연산자(+)를 사용한것처럼 문자열을 연결할 수 있다.
'hello world'.slice(0, 5); // 'hello', 문자열의 일부를 자를수 있다.(첫 인자는 시작 index, 둘째 인자는 끝나는 index)
'나는 노트북을 샀다.'.indexOf('노트북') // 3, 문자열에 있는 특정 문자열의 첫번째 index를 반환한다.
'나는 노트북을 샀다.'.indexOf('맥북') // -1, 특정 문자열이 없을 시 -1 반환한다.
'나는 노트북을 샀다.'.indexOf('노트북') // true, 문자열에 특정 문자나 단어가 포함되어있는지 확인한다.
'나는 노트북을 샀다.'.indexOf('맥북') // false, 특정 문자나 단어가 없을 경우 false를 반환한다.
부울(Boolean): 사실관계를 구분하기 위한 타입으로 true 혹은 false 둘 중 하나이다.
false
로 여겨지는 값이다. 반대는 truthy값이다. // 대표적인 falsy 값
false
0
-0
0n
""
''
``
null
undefined
NaN
===
, !==
엄격한 동치 연산자는 두 피연산자의 값과 타입을 비교한다.
123 === (100 + 23); // true ("123의 값과 100 + 23의 값은 같다."는 사실이기 때문에 true)
123 === '123'; // false ("123의 값과 '123'의 값은 같다."는 사실이 아니기 때문에 false)
123 !== (100 + 23); // false ("123의 값과 100 + 23의 값은 같지 않다."는 사실이기 아니기 때문에 false)
123 !== '123'; // true ("123의 값과 '123'의 값은 같지 않다."는 사실이기 때문에 true)
==
, !=
느슨한 동치 연산자는 대체로
값을 비교한다.(타입이 달라도 값이 같으면 true
를 반환)
12 === '12' // true
100 > 200; // false ("100은 200보다 크다."는 거짓)
200 > 100; // true ("200은 100보다 크다."는 참)
100 >= 100; // true ("100은 100보다 크거나 같다."는 참)
200 <= 100; // false ("200은 100보다 작거나 같다."는 거짓)
!
): 사실 관계를 반대로 표현한다.!true // flase
!(100 > 200) // true
//falsy, truthy의 반대 값 반환도 가능하다.
!0 // true
!'' // true
!1 // false
!'string' // false