본문 바로가기

Web/JavaScript

[JavaScript] 비교/반복/문자열

비교문

if, else if, else를 통해서 다양한 비교문을 사용할 수 있다.

1
2
3
4
5
6
7
8
9
if (condition_1) {
    statement_1;
else if (condition_2) {
    statement_2;
else if (condition_n) {
    statement_n;
else {
    statement_last;
cs


변수 b의 경우 boolean값 false가 아닌 Boolean 객체에 해당하므로 true를 의미한다.

1
2
var b = new Boolean(false);
if (b) // this condition evaluates to true
cs

false로 취급되는 값

false

undefined

null

0

NaN

""(empty string)




분기문 - switch

주어진 값과 일치하는 case절을 찾고 해당 구문을 수행한다. 

매치되는 case가 없다면 default절을 수행한다.

1
2
3
4
5
6
7
8
9
10
11
12
switch (expression) {
    case label_1:
        statements_1
        [break;]
    case label_2:
        statements_2
        [break;]
    ...
    default:
        statements_def
        [break;]
}
cs




반복문

for문이나 while문을 사용해서 반복문을 구현할 수 있다.

1
2
3
4
5
6
7
8
9
function howMany(selectObject) {
    var numberSelected = 0;
    for (var i 0; i<selectObject.options.length; i++) {
        if (selectObject.options[i].selected) {
            numberSelected++;
        }
      }
     return numberSelected;
}
cs

반복문이 수행되는 동안 length가 계속해서 구해져야 하므로 아래와 같이 길이에 해당하는 변수를 먼저 선언해주거나

1
for (var i=0, len=selectObject.options.length; i<len; i++)
cs
반복문을 반대로 동작시키는(reverse iteration) 방법을 이용할 수 있다.

1
for (var i=selectObject.options.length; i>0; i--)
cs

배열의 경우 forEach와 같은 메서드도 있고, for-of를 통한 탐색도 자주 사용된다.(for-in은 객체를 탐색할 때 사용된다.)

1
2
3
4
5
6
7
8
9
10
let arr = [357];
arr.foo = "hello";
 
for (let i in arr) {
   console.log(i); // logs "0", "1", "2", "foo"
}
 
for (let i of arr) {
   console.log(i); // logs "3", "5", "7"
}
cs




문자열 처리

자바스크립트의 문자와 문자열은 같은 타입이다. 모두 문자열.

1
2
3
typeof "abc";  //string
typeof "a";    //string
typeof 'a';    //string. single quote도 사용가능.
cs


1
2
3
"ab:cd".split(":");  //["ab","cd"]
"ab:cd".replace(":""$"); //"ab$cd"
" abcde  ".trim();   //"abcde"
cs


split 메서드는 배열로 만들어주는 역할을 한다. 구분자를 지정해주지 않으면 모든 문자로 나누어진다.

1
2
3
var result = "ab:cd".split("");
console.log(result);                    // ['a', 'b', ':', 'c', 'd']
console.log(toString.call(result));     // [object Array]
cs









참고자료

https://www.edwith.org/

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Loops_and_iteration#for...in_%EB%AC%B8

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#%EC%A1%B0%EA%B1%B4%EB%AC%B8



'Web > JavaScript' 카테고리의 다른 글

[JavaScript] DOM(querySelector)  (0) 2018.12.02
[JavaScript] window객체(setTimeout)  (0) 2018.12.02
[JavaScript] 함수호출 스택  (0) 2018.12.01
[JavaScript] 함수  (0) 2018.12.01
[JavaScript] 변수/연산자/타입  (0) 2018.11.27