• Notice
  • about
  • category
  • JavaScript Core - 일반 연산자


    Category : Web 이야기/JavaScript  /  Posted at : 2012.07.17 01:16

    산술 연산자

    일반적으로 알고 있는 사칙 연산과 동일하다.
    + 는 덧셈
    - 는 뺄셈
    * 는 곱셈
    / 는 나눗셈
    그리고 한가지 더 하여서
    % 는 나머지 연산자로 나눗셈의 나머지를 반환한다.

    console.log(5 + 3);
    console.log(5 - 3);
    console.log(5 * 3);
    console.log(5 / 3);
    console.log(5 % 3);
    

    실행결과

    증감 연산자 (++, --)

    반복문에서 자주 사용되는 연산자로, 간단한 표기로 1을 더하거나 빼는 연산자로 쓴다.

    a++; ++a;

    증감 연산자에 있어 연산자가 변수의 앞에 붙느냐, 뒤에 붙느냐에 따라 값에 차이가 생긴다.
    ++가 변수명 앞에 있으면, 변수가 먼저 증가되고 새 값이 다음 연산자에 전달이 된다.
    반면 ++ 가 변수명 뒤에 있으면, 변수의 값이 다음 연산자에 전달이 된 후에 변수가 증가된다.

    var a = 0;
    var b = 0;
    var c, d;
    
    c = ++a;
    d = b++;
    
    console.log(c + ", " + d);
    
    c = ++a;
    d = b++;
    
    console.log(c + ", " + d);
    
    c = ++a;
    d = b++;
    
    console.log(c + ", " + d);

    실행결과

    -- 연산자일 때도 ++ 연산자와 동일한 방식으로 동작한다.
    때문에 ++, -- 를 사용할 때 ++a와 a++의 차이를 주의해야 한다.
    ps. 자바스크립트에서 연산 속도를 비교했을 때, a++ 보다 ++a 가 처리속도가 좀 더 빠르다.

    대입 연산자 ( =, +=, *=, -=, /=, %= )

    대입 연산자는 연산자를 기준으로 우측의 값을 왼쪽의 변수에 대입시키는 연산자이다.

    var a = 0;
    // 0 값을 a에 대입
    
    var c = a * 2;
    // a * 2를 연산한 결과 값을 c에 대입

    주의해야 할 것은, = 는 equal의 의미가 아니라는것이다.
    자바스크립트에서 a = 1; 은 "a는 1"의 의미가 아니라, "a 에 1을 대입"의 의미로 사용됨에 주의해야 한다.
    대입 연산자에는 산술연산자와 함께 쓰여 축약형으로 쓰이는 연산자도 있다.

    var c += a;
    var c = c + a;
    
    var c -= a;
    var c = c - a;
    
    var c *= a;
    var c = c * a;

    비교 연산자 ( ==, ===, !=, !==, <, >, <=, >= )

    비교 연산자는 말 그대로 연산자를 기준으로 양쪽의 데이터를 비교하는 연산자이며, 불리언값을 반환한다.

    ' == '은 equal의 의미로, 양쪽 비교 값의 데이터 값이 같은지 비교한다.
    주의 할 점은 "값" 만을 비교한다는 것이다.
    즉, 데이터 타입이 달라도 값이 같으면 ' == ' 연산자는 두 피연산자가 같은 것으로 인식한다.

    var a = "5";
    var b = 5;
    
    console.log(a == b);

    실행결과

    반면 ' === '은 양쪽 두 피연산자가 데이터 타입과 데이터 값이 모두 같은지를 비교한다.
    ' == ' 의 좀 더 엄격한 버전의 연산자라 이해하면 되겠다.

    var a = "5";
    var b = 5;
    
    console.log(a === b);

    실행결과

    반면 ' != ' 은 양쪽 두 피연산자가 서로 같지 않음을 비교한다.
    ' == ' 과 마찬가지로, 데이터 '값' 만을 비교하며,
    ' !== '는 데이터 '타입'과 데이터 '값' 모두를 비교한다.

    var a = "5";
    var b = 5;
    
    console.log(a != b);

    실행결과

    이렇게 ' != ' 는 값만을 비교하기 때문에 a 와 b 를 같은 변수로 인식하여 false 값을 반환한다.
    하지만,

    var a = "5";
    var b = 5;
    
    console.log(a !== b);

    실행결과

    이렇게 ' !== ' 의 경우 앞서 말한 대로 '값'과 '타입'을 모두 비교하므로,
    값은 같을 지라도 a는 문자형, b는 숫자형으로 서로 다른 변수로 인식하여 true를 반환한다.
    나머지 ' < <=, >, >= ' 는 굳이 따로 설명하지 않는다.
    각각 작음, 작거나 같음, 큼, 크거나 같음을 판별하여 결과로 불리언 값을 리턴한다.

    문자열 변수끼리의 부등호 연산에 대하여는,
    알파벳 순서에 따라 a < z 이며, (순서가 빠른것이 작다)
    대소문자에 따라 a > A 이다. (소문자가 대문자보다 크다)

    조건 연산자 (삼항식)

    조건 연산자는 다른 연산자와 달리 세개의 값을 필요로 하며, 다음의 문법을 따른다.
    var = (condition) ? value1 : value2
    "condition이 참이면 value1을 var 에 대입하고, 그렇지 않으면 value2를 var에 대입한다."는 뜻이다.

    var a = 5;
    var b = ( a > 3 ) ? "3보다 크다" : " 3보다 작다"
    
    console.log(b);

    실행결과

    Posted By 멀더끙
    * 펌 관련 안내
    본 블로그의 컨텐츠는 기본적으로 CCL(BY-NC-ND)에 따라 이용 가능하되, 컨텐츠 내용 전체를 퍼가는 것을 금합니다.
    퍼가실 때에는 내용의 20%가 넘지 않는 선에서 퍼가 주시길 바라며, 가급적 사용처를 덧글로 남겨주세요~
    저작권에 관한 자세한 내용은 공지를 참고해 주세요. 감사합니다. ^^
    트랙백 주소 :: http://mulder21c.com/trackback/85