TIP
핸드폰 번호는 숫자로 이루어져 있지만, 문자열로 관리해야 컴퓨터가 첫 숫자인 "0"도 갖게된다.
let phoneNumber = 01012349876
와 같이 숫자로 선언하게 되면 오류가 발생한다.
- 주소에 '도'가 포함된다면 도를 포함한 단어 + 공백 + '시'를 포함한 단어의 다음 단어부터 문자열의 끝까지 return
- 주소에 '도'가 포함되지 않는다면 '시'를 포함한 단어의 다음 단어부터 문자열의 끝까지 return
function sliceCityFromAddress(address) {
const indexOfDo = address.indexOf('도');
const indexOfSi = address.indexOf('시');
if (indexOfDo !== -1){
return address.slice(0,indexOfDo+2) + address.slice(indexOfSi+2) //경기도 (성남시 )분당구
}
else {
return address.slice(indexOfSi+2); // (서울특별시 )강남구 테헤란로 427
}
}
Template literals (ES6)
back tic으로 string을 감싸면 입력한 대로 개행을 표현할 수 있고, 그 안에 변수를 넣어서 표현할 수 있다.
const name = '나은' let detail = `자세히 보아야 이쁘다 ${name}..`; console.log(detail);
String method (ES6)
- startsWith / endsWith / includes 문자열의 시작, 끝, 포함여부를 체크한다.
- repeat 특정 문자열을 반복하여 작성한다.
'#'.repeat(3); // '###'
const email = '5ongnaeu17@gmail.com'; console.log(email.startsWith('5')); // true console.log(email.endsWith('com')); // true console.log(email.includes('@gmail')); // true
"-" 의 경우 오로지 숫자에만 사용되는 연산이다.
console.log(2019+"2000");
양쪽에 하나라도 string이 있으면 문자열로 합친다.
console.log(2019-"2000");
string의 마이너스는 존재하지 않으므로 양쪽의 값을 모두 숫자로 변환해서 계산해준다.
let rightNow = new Date();
let year = rightNow.getFullYear();
let month = rightNow.getMonth()+1;
let date = rightNow.getDate();
let day = rightNow.getDay();
let currentHour = rightNow.getHours();
let currentMin = rightNow.getMinutes();
let date1 = new Date('December 17, 2019 03:24:00');
let date2 = new Date('2019-12-17T03:24:00');
let date3 = new Date(2019, 5, 1);
// 2019-02-18T00:45:06.562Z 형식으로 저장된다.
- 만나이는 해만 고려할 것이 아니라 생년월일을 모두 고려해야 한다.
- 현재 시간을 밀리세컨 단위로 불러와 birthday와 비교한 후 1년을 의미하는 숫자를 곱해주었다.
function getWesternAge(birthday) {
let nowDate = new Date();
let milliSecond = nowDate - birthday;
let westernAge = Math.floor(milliSecond / (1000*60*60*24*365)); // 밀리세컨x초x분x시간x일
return westernAge;
}