JavaScript 기초 : 조건문, 문자열

hosik kim·2021년 7월 4일
0

With CodeStates

목록 보기
24/45
post-thumbnail

조건문

  • 조건을 배우기 위해서는 Boolean 타입에 대한 이해가 필요하다.
    여기서 Boolean은 참과 거짓을 나누는 타입이다.
let isAudlt = ture; // 또는 false
let isStudent = false; // 또는 true
  • 조건문은 어떠한 조건을 판별하는 기준을 만드는 것이다.
  • 조건문에는 반드시 비교연산자(comparison operator)가 필요하다.

비교연산자

3 > 5; // false
9 < 10; // true
'hello' === 'world'; // false
  • 비교의 결과는 늘 Boolean, 즉 true or false

  • 비교 연산자

기호내용
>초과
<미만
>=이상
<=이하
===같다
!==다르다

  • 아래 연산자들은 타입을 엄격하게 비교하지 않는다
기호내용
==같다
!=다르다

예를 들어서

1 == '1' // true 숫자 1과 문자열 1이 같다라는 결과가 나온다
1 == ture // true 숫자 1과 boolean이 같다라는 결과가 나온다

JS Comparison Table을 통해서 이퀄사인 2개와 3개를 사용했을 때 결과값을 보기 좋게 표로 만들어놨다.
참고하면 좋을 것이다.

  • 조건문은 다음과 같이 쓸 수 있다.
if (조건1) {
  // 조건1이 통화할 경우
} else if (조건2) {
  //조건1이 통화하지 안혹
  //조건2가 통과할 경우
} else {
  // 모든 조건이 통과하지 않는 경우
} 
//조건에는 Boolean으로 결과가 나오는 조건문 표현식이 들어간다.

논리 연산자

  • 두가지 조건이 한번에 적용되는 경우
    논리 연산자(Logical Operator)를 사용한다.

  • 논리연산자의 유용한 예

isStudent && isFemale;
//학생이면서, 여성일 때 통과
//AND 연산자라 부른다.
isStudent || isFemale;
//학생이거나, 여성일 때 통과
//OR 연산자라 부른다.
//여기서 ||는 Enter키 위에 있다.
!isStudnet && isFemale;
//학생이 아니면서, 여성일 때 통과
//NOT 연산자라 부른다.
//truthy, falsy 여부를 반전시킨다.
  • 논리연산자 NOT
    결과값을 반전시킨 값이 나온다.
!false // true 
!(3>2) // false
!undefined // true  undefined를 false로 취급(falsy)
!'Hello' // false   'Hello'를 true로 취급(truthy)
  • 논리연산자 OR
    둘 중에 하나만 조건이 만족했을 때 통과한다.
true || true // true
true || false // true
false || false // false 
  • 논리연산자 AND
    두 가지 조건이 모두 만족이 됐을 때 통과한다.
true && true // true
true && false // false
false && false // false
  • 기억해야 할 6가지 falsy 값
    다음 if문에서 false로 변환되므로, if구문이 실행되지 않는다.
    if (false)
    if (null) //값이 없다는 의미
    if (undefined) //정의되지 않았다는 것을 undefined라한다
    if (0) 
    if (NaN) //Not a number
    if ('')  //아무런 값이 없는 문자열

문자열

str[index]

var str = 'HelloWorld';
console.log(srt[0]); // 'H' 0번째인 H가 결과값으로 나온다.
console.log(str[4]); // 'o' 4번째인 o가 결과값으로 나온다.
console.log(str[10]); //undefined
  • note : index로 접근은 가능하지만 쓸 수는 없다(read-only)
str[0] = 'G'
console.log(str); // 'HelloWorld' not 'GelloWorld'
  • +연산자를 쓸 수 있다.
  • string 타입과 다른 타입 사이에 + 연산자를 쓰면, string형식으로 변환
    (toString)
var str1 = 'Hello';
var str2 = 'World';
var str3 = '1';

console.log(str1 + str2); // 'HelloWorld' str1의 값 str2의 값을 플러스 연산자로 연결 시킬경우 연결된 문자열이 나온다.
consloe.log(str3 + 7); // '17'   문자열1과 숫자7을 더하면 8이 나오는게 아니라 문자열이 반환된다.

lenght PROPERTY

문자열의 전체 길이를 반환

var str = 'HelloWorld'
console.log(str.length); // 10 

str.indexOf(searchValue)

  • arguments : 찾고자 하는 문자열
  • return value : 처음으로 일치하는 index, 찾고자 하는 문자열이 없으면 -1
  • lastindex : 문자열 뒤에서부터 찾음
'Hello World'.indexOf('Hello'); // 0 0번째의 index에 Hello가 들어가기때문에 0을 출력
'Hello World'.indexOf('hello'); // -1 찾고자하는 문자열이 없기때문에 -1을 출력
'Hello World'.indexOf('World'); // 6 6번째의 index에 Hello가 들어가기때문에 6을 출력
'Hello World World'.indexOf('World') // 6 처음 등장하는 index만 출력을 한다

'canal'.lastIndexOf('r'); // 3 뒤에서부터 찾는 index r이 3번째이 있기 때문에 3을 출력
  • see more:str.includes(searchValue)
    Internet Explorer와 같은 구형 브라우저에서는 작동하지 않으므로 주의해야한다.
    searchValue의 값에 따라 ture or false를 출력한다.

str.split(seperator)

  • arguments : 분리 기준이 될 문자열
  • return value : 분리된 문자열이 포함된 배열
var str = 'Hello from the other side';
console.log(str.split(' ')); // 빈공백의 seperator를 이용해 잘라낸다.
//["Hello", "from", "the", "other", "side"]
  • csv 형식을 처리할 때 유용하다.

str.substring(start, end)

  • arguments : 시작 index, 끝 index
  • return value : 시작과 끝 index 사이의 문자열
var str = 'abcdefghij';
console.log(str.substring(0, 3)); // 'abc' 0,1,2를 가져온다 3은 포함하지 않는다.
console.log(str.substring(3, 0)); // 'abc' 순서가 바뀌어도 0,1,2를 가져온다. 
console.log(str.substring(1, 4)); // 'bcd' 1,2,3을 가져온다.
console.log(str.substring(-1, 4)); // 'abcd', 음수는 0으로 취급 
console.log(str.substring(0, 20)); // 'abcdefghij', index범위를 초과하면 마지막까지 가져온다.

str.toLowerCase() / str.toUpperCase()

  • arguments : 없음
  • return value : 대, 소문자로 변환된 문자열
console.log('ALPHABET'.toLowerCase()); // 'alphabet'  
console.log('alphabet'.toUpperCase()); // 'ALPHABET'

IMMUTABLE이란 무엇일까?

  • 모든 string method는 immutable
  • 즉, 원본이 변하지 않음
  • array method는 immutable 및 mutable 여부를 잘 기억해야된다.
  • immutable은 항상 변하지 값을 리턴한다 원본이 바뀌는 경우를 mutable하다고 한다.
profile
안되면 될 때까지👌

0개의 댓글