Javascript(2) - 문자열, 반복문

개발빼-엠·2021년 4월 10일
0

Javascript

목록 보기
2/10
post-thumbnail

<문자열>

-문자열에 대하여
-연결문자열
-문자열의 속성과 메소드
-IMMUTABLE 과 MUTABLE

-문자열에 대하여

일상생활에서 확인할 수 있는, 모든 글자의 나열을 문자열이라고 합니다.
'컴퓨터'와 같은 단어 또는 '컴퓨터로 코딩을합니다.' 와 같은 문장도 문자열입니다.
그리고 코드 자체도 문자로 이루어져 있습니다.
컴퓨터는 코드와 문자열을 구분하기 위해서 작은 따옴표(')나 큰 따옴표(")를 사용하여 문자열을 구분합니다.

*문자열은 string입니다. 문자 하나는 character이며, char이라는 축약어로 부르기도 합니다. char가 포함된 메소드도 있습니다.

-연결문자열 (concatenating strings)

  • 플러스연산자(+)를 쓸 수 있습니다.
ex)
let str1 = 'abcd'
let str2 = "efg"
let str3 = '3'
console.log(str1 + str2); // 'abcdefg'
console.log(str3 + 5); // '35'
  • string 타입과 다른 타입에 +연산자를 쓰면, string 형식으로 변환됩니다. (toString)
    string으로 강제변환 된 값이 나옵니다.
ex)
'1' + true // '1true'
'1' + 5 // '15'
'1' + [1,2,3] // '11,2,3'
  • str1.concat(str2,str3...); 의 형태로도 사용 가능합니다.
    *concat = str1+str2+str3 다 더하는 메소드

-문자열의 속성과 메소드

  • str.length : 문자열의 전체 길이를 반환합니다.
ex)
let str = 'abcdefg'
console.log(str.length); // 7
  • str[index] : 문자열의 한글자 한글자를 얻어올 수 있습니다.
    (대괄호를 이용하여 조회하는 방식 = bracket notation)
ex)
let str = 'abcedfg';
console.log(str[0]); // 'a'
console.log(str[4]); // 'd'
console.log(str[8]); // undefined

index로 접근은 가능하지만 쓸 수는 없습니다.(read-only)

ex)
str[0] = 'z';
console.log(str); // 'abdefg' not 'zbcdefg'
  • str.indexOf(searchValue) : 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.
    -arguments : 찾고자 하는 문자열
    -return value : 처음으로 일치하는 index, 찾고자 하는 문자열이 없으면 - 1합니다.
    -lastIndexOf는 문자열 뒤에서 부터 찾습니다.
    -str.includes(searchValue) : true혹은 false를 구분합니다.
ex)
'Blue Whale'.indexOf('Blue'); // 0 
'Blue Whale'.indexOf('Whale'); // 5
'Blue Whale Whale'.indexOf('Whale'); // 5 두번연속으로 등장하는 경우 처음 등장한 index만 출력을합니다.
'Blue Whale'.indexOf('blue'); // -1 대소문자를 구분하기 때문에 없는 값이면 -1이라고 뜹니다.
'Blue Whale'.lastIndexOf('Whale'); // 5 

'canal'.lastIndexOf('a'); // 3
  • str.split(separator) : String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.
    -arguments : 분리 기준이 될 문자열
    -return value : 분리된 문자열이 포함된 배열
    -csv 형식을 처리할 때 유용합니다.
    *줄바꿈표시 : '\n'
ex)
let str = 'Hello from the other side';
console.log(str.split(' '));  // 빈공백을이용해서 잘라낸다.
// ['Hello', 'from', 'the', 'other', 'side']
  • str.substring(start, end) : 문자열을 원하는 만큼만 선택할 수 있습니다.
    text의 중간을 똑 떼서 그 부분만 가져오고 싶을때 사용합니다.
    구간에 있는 문자열을 반환합니다.
    start, end순서는 상관이 없습니다.
    -arguments : 시작 index, 끝 index
    -return value : 시작과 끝 index 사이의 문자열
    (str.slice(0, 3) : slice와 substring은 작동에 큰차이는 없으나 slice가 배열에도 사용할 수 있으므로 조금 더 범용적인 메소드입니다.)
ex)
let str = 'abcdefghij';
console.log(str.substring(0, 3)) // 'abc' 0부터 3사이의 문자들을 가져옵니다.3은 가져오지 않습니다.
console.log(str.substring(3, 0)) // 'abc' 순서를 바꿔도 정상적으로 작동합니다.
console.log(str.substring(1, 4)) // 'bcd'
console.log(str.substring(-1, 4)) // 'abcd' 음수는 0으로 취급합니다.
console.log(str.substring(0, 20)) // 'abcdefghij' index범위를 초과하면 마지막 문자까지 출력합니다.
  • str.toUpperCase() : 영문을 모두 대문자로 바꿀 수 있습니다.
    str.toLowerCase() : 영문을 모두 소문자로 바꿀 수 있습니다.
    -arguments : 없음
    -return value : 대,소문자로 변환된 문자열
ex)
console.log(ALPHABET.toLowerCase()); // 'alphabet;
console.log(alphabet.toUpperCase()); // 'ALPHABET'

-IMMUTABLE과 MUTABLE

  • IMMUTABLE : 원본이 변하지 않는다.
  • MUTABLE : 원본이 변한다.
    모든 string method는 IMMUTABLE합니다. 즉, 원본이 변하지 않습니다.
    하지만, array method는 IMMUTABLE 및 MUTABLE 여부를 잘 기억해야 합니다.
ex1)
let str = 'blue whale' // undefined
str.substring(0,4) // "blue" -> substring으로 값이 'blue'가 떨어진다고 해도
str // "blue whale" -> str이 'blue'가 되진 않습니다.

ex2)
let str = 'blue whale' // undefined
str.toUpperCase() // "BLUE WHALE" 
str // "blue whale" 

*바뀐 값을 다시 대입을 하려면 새로 대입해 주는 방법밖에 없습니다.*

ex3)
str = str.substring(0,4) 
str // "blue"
str = str.toUpperCase()
str // "BLUE"

예시를 통해 보면 str은 새로운 값을 리턴할 뿐 str은 변하지 않습니다.
string에 있는 모든 메소드는 원본을 건드리지 않습니다.

<반복문>

-반복문에 대하여
-for문
-while문

-반복문에 대하여

반복문은 같거나 비슷한 코드를 여러번 실행시켜야 할 경우에 쓰는 구문입니다.

코드에서 반복문이 없다면, 우리는 수백만 개의 정보를 처리하기 위해서 수백만 줄의 코드를 작성해야 합니다.
이런 단순한 반복을 보다 효율적이고 간결하게 할 수 있도록 하는 반복문을 사용합니다.
반복할 내용을 먼저 코드로 작성한 후, 반복한 조건을 코드로 작성합니다.

-for문

반복할 내용을 중괄호안에 넣어줍니다.
반복할 조건을 초기화,조건식,증감문 순으로 넣어줍니다.

ex반복문)
let sum = 1;
sum = sum + 2;
sum = sum + 3;
sum = sum + 4;

위의 내용을 조건문으로 풀어보겠습니다.
"sum과 숫자(n)의 합""sum"에 대입하자! -> sum = sum + n
조건:
-숫자(n)2부터 시작한다. -> let n = 2
-숫자(n)4가 될때까지 반복한다. -> n <= 4 이 부분부터 조건문입니다.
-숫자(n)1씩 증가한다. -> n = n + 1 또는 n++ 로 표현합니다.

위의 내용을 반복문으로 작성해보겠습니다.
ex반복문)
let sum = 1;
for (let n = 1; n <= 4; n++) { //초기화;조건식;증감문 순서대로 작성합니다.
  sum = sum + n //반복할내용을 작성합니다.
}
console.log(sum) //10

-while문

반복할 조건중 초기화,조건문은 따로적고 조건식만 괄호안에 넣어줍니다.
초기화는 while 바깥에 적어주고 증감문은 while 안쪽에 적어줍니다.
for문으로 할 수 있는건 while문으로 할 수있고, while문으로 할 수 있는건 for문으로 할 수 있습니다.
초기화가 필요없고 증감문이 필요없을때 while문을 사용합니다.

ex반복문)
let sum = 1;
let n = 2; //초기화값을 작성합니다.
while (n <= 4) { //조건식을 작성합니다.
  sum = sum + 1; //반복할 내용을 작성합니다.
}
console.log(sum) // 10

0개의 댓글