📍 해당 인덱스의 문자의 아스키코드를 반환한다
str.charCodeAt(index);
'A'.charCodeAt(0); // 65
'abcd'.charCodeAt(2); // 99
📍 입력한 아스키코드에 대응되는 문자를 반환한다
String.fromCharCode(65); // A
String.fromCharCode(97); // a
📍 주어진 문자를 ASCII Code
로 변환한 후 +1
을 한다
📍 이렇게 얻은 ASCII Code
를 문자로 변환한다
let a = 'A';
x.charCodeAt(0); // 65
x.charCodeAt(0) + 1; // 66
String.fromCharCode(a.charCodeAt(0) + 1); // B
📍 숫자가 아닌 문자가 포함된 경우 NaN
이 반환된다
let a = '123';
Number(a); // 123 (Number)
Number('123.5'); // 123.5
Number('a123'); // NaN
📍 문자열을 정수로 변환한다
📍 문자가 포함되는 경우
1) 가장 먼저 나오는 문자가 숫자인 경우 그 숫자를 변환한다(이하의 모든 문자는 무시)
2) 가장 먼저 나오는 문자가 문자인 경우 NaN
을 반환하다
parseInt('123'); // 123
parseInt('123.5'); // 123
parseInt('123a'); // 123
parseInt('123.15a10'); // 123
parseInt('a123'); // NaN
📍 문자열을 실수로 변환한다
parseFloat('123'); // 123
parseFloat('123.5'); // 123.5
parseFloat('123.15a'); // 123.15
parseFloat('123.15a10'); // 123.15
parseFloat('a123.15'); // NaN
let a = 123;
let b = 456.789;
a.toString(); // 123 (String)
a.toString(2); // 1111011 (2진수)
b.toString(); // 456.789 (String)
📍 숫자 덧셈과 문자열 연결을 담당한다
📍 피연산자가 하나라도 문자열인 경우 숫자를 문자열로 변환하여 계산한다
let a = 'A';
a + 1; // A1
공식문서에 따르면 문자열 변환을 위해 "" + x를 사용하는 것은 좋지 않다고 한다 (이유도 알려주세요)❇︎
❇︎ 아마.. 직관적이지 않아서 && null, undefined와의 연산 때문이지 않을까 추측해본다..
⭐️ 만약 문자열 형태의 숫자와 일반 숫자를 더하고 싶다면 문자열을 숫자로 변환한 후 연산을 진행한다
let n = '10';
n + 10; // 1010 (String)
Number(n) + 10; // 20
📍 문자열끼리 비교 가능하다
📍 사전순으로 나열했을 때 먼저 오는 문자열이 더 작은 수이다
📍 문자라면 숫자와도 비교 가능하다
let a = 'A';
let b = 'B';
a < b // true
a > b // false
a < 65 // false
a > 10 // true
⏺ 문자열과 숫자 비교는 정의되지 않은 것 같다.. 전부 false로 뜨는 듯
📍 이 점을 이용해 대소문자 여부를 쉽게 확인 가능하다
if ('A' <= x && x <= 'Z') console.log("Upper case");
else console.log("Lower case");
📍 문자나 문자열끼리 비교 가능하다
📍 ASCII Code
가 큰 쪽이 큰 값이다
📍 숫자와 문자간 비교의 경우 ==
, ===
모두 false
가 뜬다
→ ===
: 값과 타입이 모두 같아야 true
이므로 당연히 false
→ ==
: 암묵적 타입 변환을 통해 타입을 일치시키고 비교한 결과를 반환한다. 문자를 숫자로 변환하면 NaN
이므로 false
console.log('a' === 'b') // false
console.log('a' == 65); // false
console.log('a' === 65); // false
console.log("abc" === "abc"); // true
📍 문자열인 피연산자를 숫자로 자동형변환한다.
📍 문자열에 숫자가 아닌 문자가 포함되어있다면 NaN(Not a Number)
를 반환한다
let n = '10';
n - 5; //5
'a' - 5; // NaN
📍 특정 문자열의 모든 문자를 소문자로 변환한 값을 반환한다
let s = 'Take Me Home';
s.toLowerCase(); // take me home
📍 특정 문자열의 모든 문자를 대문자로 변환한 값을 반환한다
let s = 'Take Me Home';
s.toUpperCase(); // TAKE ME HOME
const s = 'take me home';
console.log(s.length);
// 12
📍 문자열 내 해당 요소가 있으면 true
, 없으면 false
를 반환한다
const s = 'take me home';
console.log(s.includes('e h'));
// true
📍 문자열에서 가장 먼저 나오는 요소의 첫 번째 문자의 위치를 반환한다
📍 찾지 못했다면 -1
을 반환한다
const s = 'take me home';
console.log(s.indexOf('e h'));
// 6
console.log(s.indexOf('oh'));
// -1
string.slice(start, end)
📍 start ~ end-1
의 부문자열을 반환한다
const haystack = 'take me home';
console.log(haystack.slice(5, 7));
// me
📍 음수 인덱스도 사용 가능하다
const haystack = 'take me home';
console.log(haystack.slice(-5));
// home
console.log(haystack.slice(-5, -1));
// hom