공부하기에 앞서 인덱스 번호에 대하여 알고 넘어가자.
양수는 숫자 0부터 세고, 음수의 경우 -1 부터 뒤로 센다.
' (작은따옴표) , " (큰따옴표) , ` (베틱)
작은따옴표와 큰따옴표는 큰 차이가 없기 때문에 상황에 맞게 사용하면 된다.
예를 들면, html 코드는 ' (작은따옴표)
로 감싸는 것이 좋다. 내용에 " (큰따옴표) 가 들어가기 때문이다.
let html = '<div class="box_title">제목 영역</div>';
영문의 경우에는 " (큰따옴표)
로 감싸는 것이 편리하다.
let desc = "It's 3o'clock."
베틱 은 ${}
를 이용해 변수를 표현하거나 표현식을 사용할 수 있다.
베틱은 여러 줄을 표현할 수 있다. (작은따옴표, 큰따옴표는 에러가 난다.)
let name = 'mike';
let result = `My name is ${name}.`
let add = `2 더하기 3은 ${2+3}입니다.`
let desc = `오늘은 맑고 화창한
날씨가 계속 되겠습니다.
내일은 비소식이 있습니다.`;
let dsce = '안녕하세요.';
desc.length // 6
문자열의 길이를 알 수 있다.
보통 가입할 때 아이디나 비밀번호를 몇 자 이상 ~ 몇 자 이하로 체크할 때 이용한다.
let desc = '안녕하세요.';
desc[2] // 하;
배열과 동일하게 문자열도 대괄호[]
와 숫자
로 특정 위치의 문자에 접근할 수 있다.
동일하게 0부터 시작.
단, 배열과 차이점은 한 글자만 바꾸는 건 허용하지 않는다.
let desc = '안녕하세요.';
desc[4] = '용';
console.log(desc); // 안녕하세요.
영문을 대문자(toUpperCase()
)/소문자(toLowerCase
)로 변환해 준다.
let desc = 'Hello World';
desc.toUpperCase(); // 'HELLO WORLD' 모든 영문을 대문자로
desc.toLowerCase(); // 'hello world' 모든 영문을 소문자로
문자를 인수로 받아 원하는 문자가 몇 번째 위치하는지 알려준다. (0부터 센다.)
let desc = 'Hi guys. Nice to meet you.';
desc.indexOf('to'); // 14
desc.indexOf('man'); // -1
❗️ 주의할 점!
1) 포함된 문자가 여러개라고 하더라도 첫번째 위치만 반환한다.
2) if 문을 사용할 경우
n부터 m까지의 문자열을 반환한다.
n :
m :
let desc = "abcdefg";
desc.slice(2); // 'cdefg'
desc.slice(0, 5); // 'abcde'
desc.slice(2, -2); // 'cde'
let desc= = "abcdefg";
desc.substring(2,5); // "cde"
desc.substring(5,2); // "cde"
let desc= = "abcdefg";
desc.substr(2,4); // "cdef"
desc.substr(-4,2); // "de"
let desc = " coding ";
desc.trim(); // "coding"
let hello = 'hello!';
hello.repeat(3); // 'hello!hello!hello!'
문자열도 비교가 가능하다.
1 < 3 // true
"a" < "c" //true
아스키 코드* 표를 모두 외울 필요는 없지만 크게 아래 내용을 인지하고 있어야 한다.
- a 보다 z 가 크다.
- 대문자보다 소문자가 크다.
아스키 번호를 얻어오는 법은 아래와 같다.
"a".codePointAt(0); // 97
String.fromCodePoint(97) // "a"
아스키 코드* 란?
아스키 값은 컴퓨터에서 문자형을 수자형에 일대일 대응한 값 을 의미한다.
아스키 값을 정리한 표를 ''아스키 테이블' 이라고 부른다.보다 자세한 아스키 값을 비교하고 싶다면 '여기' 를 클릭하여 이용하자.
아래의 차례에서 문자열만 값으로 배열로 구해 보자.
let list = [
"01. 들어가며",
"02. 자바스크립트의 역사",
"03. 자료형",
"04. 함수",
"05. 배열",
];
let newList = [];
for (let i = 0; i < list.length; i++){
newList.push(list[i].slice(4));
};
console.log(newList); // ["들어가며","자바스크립트의 역사","자료형","함수","배열"]
🙅🏻♂️ 금칙어 : 콜라
문장에 '콜라' 가 들어가면 '금칙어가 있습니다.' 라는 메시지가 보여지고,
'콜라' 가 없다면 '통과' 메시지가 보여지는 코드를 짜 보자.
function hasCola(str){
if(str.indexOf('콜라')){
console.log('금칙어가 있습니다.');
} else {
console.log('통과');
}
}
hasCola('와 사이다가 짱이야!'); // '금칙어가 있습니다.'
hasCola('무슨 소리? 콜라가 최고!'); // '금칙어가 있습니다.'
hasCola('콜라'); // '통과'
❌ 위와 같이 코드를 짜면 원하는 값을 얻지 못 한다.
'콜라' 가 들어가지 않은 문장은 -1 이다. -1 은 if문
의 true
가 되어 '금칙어가 있습니다' 를 콘솔에 찍힌다.
hasCola('콜라')는 문장의 0번째에 '콜라' 가 나오므로 0 == false
가 되어 '통과' 메시지가 콘솔로 찍히는 오류가 발생한다.
이러한 오류가 발생되지 않도록 코드를 올바르게 수정하여 보자.
function hasCola(str){
if(str.indexOf('콜라') > -1){
console.log('금칙어가 있습니다.');
} else {
console.log('통과');
}
}
hasCola('와 사이다가 짱이야!'); // '통과'
hasCola('무슨 소리? 콜라가 최고!'); // '금칙어가 있습니다.'
hasCola('콜라'); // '금칙어가 있습니다.'
🙅🏻♂️ 금칙어 : 콜라
문장에 '콜라' 가 들어가면 '금칙어가 있습니다.' 라는 메시지가 보여지고,
'콜라' 가 없다면 '통과' 메시지가 보여지는 코드를 짜 보자.
- 문자가 있으면 true / 없으면 false
function hasCola(str){
if(str.includes('콜라')){
console.log('금칙어가 있습니다.');
} else {
console.log('통과');
}
}
hasCola('와 사이다가 짱이야!'); // '통과'
hasCola('무슨 소리? 콜라가 최고!'); // '금칙어가 있습니다.'
hasCola('콜라');// '금칙어가 있습니다.'