본문 바로가기

자바스크립트

[자바스크립트] - 증감연산자 B++, 비교연산자 === , 논리연산자 || or, && and, ! not , 삼항조건연산자

증감연산자 전위연산 var A = ++B / --B 변수 B값을 먼저 1 증가/감소시킨 뒤 그 값을 A에 대입
후위연산 * var A = B++ / B-- B를 먼저 A에 대입시킨 뒤 B값을 1 증가 / 감소 시킨다. 
비교연산자 1. A > B : A는 B보다 크다. (=초과)
2. A < B : A는 B보다 작다.   (=미만)
3. A >= B : A는 B보다 크거나 같다. (=이상)
4. A <= B : A는 B보다 작거나 같다. (=이하)
5. A == B : A는 B와 같다. _ 느슨한 비교 10 =='10' -> true 데이터형이 달라도 숫자가 같으면 같다고 인식
6. A === B : A는 B와 같다. _엄격한 비교 숫자를 비교할 경우 표기된 숫자와 자료형까지 모두 일치해야만
같다라고 true를 반환
7. A != B : A는 B와 다르다. _ 느슨한 비교 숫자형이든 문자형이든 상관하지 않고 표기된 숫자만 다르면  true 값을 반환
8. A !== B :  A는 B와 다르다. _엄격한 비교 숫자, 자료형 둘 다  일치하지 않을 경우에도 true 가 나오고
한가지만 달라도 true가 나온다.  
논리연산자 ||(or) 피연산자 중 하나라도 true가 있으면 true로 최종값을 반환.
&&(and) 피연산자 중 하나라도 false가 있으면 최종값을 false로 반환한다.
즉 모든 피연산자가 true여야지만 최종적으로 true값을 반환한다.
 ! (not)   단항 연산자이며, 최종 결과가 true면 false를 반환하고 false면 true를 반환한다.
삼항조건연산자 조건식 ? 자바스크립트 코드1 : 자바스크립트 코드2; 먼저 조건식이 true인지 false인지를 계산한다. 이후 true면 자바스크립트코드 1을 실행하고 종료한다. 
만약 false면 자바스크립트 코드 2를 실행하고 종료한다. 

 


증감연산자

 

: 증감 연산자는 숫자형 데이터를 1씩 증가시키는 증가연산자(++),  1씩 감소시키는 감소연산자(--)가 있다. 

증감 연산자는 앞에서 배웠던 다른 연산자와 다르게 피연산자가 1개만 필요한 '단항연산자'이다. 

즉 증감연산자는 스스로 연산하는 연산자이다. 
기호가 어디에 오느냐에 따라서 계산 방식이 달라진다. 
        
 [기본형]
1. 변수--; 또는 --변수;

2. 변수++; 또는 ++변수;

 - 전위 연산과 후위 연산  

증감연산자에서 기호가 변수의 앞에 오면 '전위연산',

변수의 뒤에 오면 '후위연산'이라고 부른다.

보통 후위연산 방식을 가장 많이 쓴다. 

1. 전위연산

var A = ++B
 => 변수 B의 값을 먼저 1 증가 시킨 후 A에 대입한다. (즉 A는 B에 1을 증가시킨 값. 두개의 값은 같다.)

      var num1 = 10;
      var num2 = 20;

      num1--; // = 9 앞에 변수값이 없으면 혼자 계산한다.
      document.write("num1은?", num1, "<br>");

      num1++; // = 10
      document.write("num1은?", num1, "<br>");



2. 후위연산 ☆

 var A = B++
=> 변수 B의 값을 먼저 A에 대입시킨 후, B가 1 증가한다. (즉 변수 A와 B는 값이 달라진다.)   

     var num1 = 10;
      var num2 = 20;
   
 
     var result = num2++; // result =20 num2=21 num2의 값이 먼저 result에 대입되고 그 다음에 num2가 1 증가된다.
      document.write("result은?", result, "<br>");
      document.write("num2은?", num2, "<br>");

      result = ++num2; //result는 22가 된다. 앞에서 num2가 21로 끝났기때문에

먼저 num2의 값을 result에 대입한 다음 num2가 1씩 증감된다. 

result는 20이 되고 num2는 21이 된다. 

 


비교연산자 ☆

 

: 두 데이터를 '크다','작다', '같다'와 같이 비교할 때 사용함.
연산된 결과값은 무조건 true(참) / false(거짓)으로 나온다. 

[기본형] (자바스크립트는 앞에 있는 얘가 기준이라 A를 기준으로 말한다)
1. A > B : A는 B보다 크다. (=초과)


2. A < B : A는 B보다 작다.   (=미만)

 

3. A >= B : A는 B보다 크거나 같다. (=이상)


4. A <= B : A는 B보다 작거나 같다. (=이하)


5. A == B : A는 B와 같다. _ 느슨한 비교
ex) 10 =='10' -> true 느슨한 비교. 데이터형이 달라도 숫자가 같으면 같다고 인식한다. 
 ==는 느슨한 비교이다. 숫자를 비교할 경우 자료형은 숫자형이든 문자형이든 상관하지 않고 표기된 숫자만 일치하면 true 값을 반환한다. 
예를 들어 "10"과 10은 표기된 숫자가 같기때문에 true로 반환한다. 

 6. A === B : A는 B와 같다. _엄격한 비교
 ===는 엄격한 비교이다. 숫자를 비교할 경우 표기된 숫자와 자료형까지 모두 일치해야만
같다라고 true를 반환한다. 예를 들어 문자형 '10' 과 숫자형 10은 표기된 숫자는 같지만
자료형이 다르므로 false를 반환한다. 10 =='10' -> false

7. A != B : A는 B와 다르다. _ 느슨한 비교
 != 느슨한 비교이다. 
숫자를 비교할 경우 자료형은 숫자형이든 문자형이든 상관하지 않고 표기된 숫자만 다르면  true 값을 반환한다. 
예를 들어 "10"과 10은 표기된 숫자는 같으므로 false를 반환한다.
        
 8. A !== B :  A는 B와 다르다. _엄격한 비교
 !==는 엄격한 비교이다. 
 숫자를 비교할 경우 반드시 표기된 숫자 또는 자료형이 일치하지 않을 때  true가 나온다.
예를 들어 "10"과 10은 표기된 숫자는 같지만 자료형이 다르므로 true를 반환한다. 
숫자, 자료형 둘 다  일치하지 않을 경우에도 true 가 나오고
한가지만 달라도 true가 나온다.  

 *엄격한 비교들을 실무에서 많이 쓴다. 

 

     var k = 10;
      var m = "10";

      k == 10; //true k는 10과 같다.
      k == "10"; //true k는 '10'과 같다.

      m === 10; //false m은 숫자형 10과 같다
      m === "10"; //true m은 문자형 10과 같다

      var a = 10;
      var b = 20;
      var c = 10;
      var d = "20";
      var result;

      result = a > b; //false
      document.write(result, "<br>");

      result = a < b; //true
      document.write(result, "<br>");

      result = a <= b; //true
      document.write(result, "<br>");

      result = b == d; //true 느슨한 비교라 숫자만 같으면 true로 반환
      document.write(result, "<br>");

      result = b !== d; //true 엄격한 비교라 쓰여진 문자는 같지만 자료형은 달라서 true가 반환
      document.write(result, "<br>");

 

 


논리연산자

 

:논리연산자에는 ||(or), shift + \치면 나옴, &&(and), !(not) 연산자가 있다.


논리연산자는 피연산자가 논리형 데이터인 true 또는 false로 나눠지는 데이터를 피연산자로 사용하고, 결과값은 논리형 데이터가 최종 반환된다.


1. ||(or)연산자는 피연산자 중 하나라도 true가 있으면 true로 최종값을 반환.

 

2. &&(and)연산자는 피연산자 중 하나라도 false가 있으면 최종값을 false로 반환한다.
즉 &&(and)연산자는 모든 피연산자가 true여야지만 최종적으로 true값을 반환한다. ( * &&연산자 많이 쓰임)
       

3.  !(not)은 논리부정연산자로 단항 연산자이며, 최종 결과가 true면 false를 반환하고 false면 true를 반환한다.  
        

      var a = 10;
      var b = 20;
      var m = 30;
      var n = 40;

      var result;

      result = a > b || b >= m || m > n; // false || false || false-> ||(or)은 하나만 true라도 true라고 반환한다. 전부 false라 false라 나온다.
      document.write(result, "<br>");

      result = a > b || b >= m || m <= n; //false || false || true -> 마지막것이 true라서 ||(or)은 하나만 true라도 true라고 반환하니깐 true로 나온다.
      document.write(result, "<br>");

      result = a <= b && b <= m && m <= n; // true && true && true -> 모든 피연산자가 true라서 결국 true가 나온다.
      document.write(result, "<br>");

      result = !(a > b); //a > b는 false고 false를 부정하여 true가 나오게 된다.
      document.write(result, "<br>");

 


삼항조건연산자 ☆

삼항조건연산자는 조건식의 만족 여부(true 또는 false)에 따라 실행결과가 달라지는 삼항 연산자로, 연산을 위해 피연산자가 3개가 필요하다.  

' 값이 true / false로 나오면 조건식이다. '

 

 [기본형]
1. 조건식 ? 자바스크립트 코드1 : 자바스크립트 코드2;

삼항조건연산자는 먼저 조건식이 true인지 false인지를 계산한다. 이후 true면 자바스크립트코드 1을 실행하고 종료한다. 
만약 false면 자바스크립트 코드 2를 실행하고 종료한다. 

조건식이 맞아? 라고 '?'로 물어봄

 2. 조건식1 ? 자바스크립트 코드1 : 조건식2 ? 자바스크립트 코드2 : 자바스크립트 코드3;
    -> 1. 조건식 검사
        2. 조건식1이 true면 자바스크립트 코드1을 실행 후 종료. 
        3. 조건식1이 false면 조건식2를 검사하고, true면 자바스크립트 코드2를 실행 후 종료. 
        4. 조건식 2가 false면 자바스크립트 코드 3을 실행하고 종료.

 

 

= a가 b보다 크는 게 true면 "javascript"를 실행, false면 "hello world"를 실행해라

 

/*
        땡땡이의 하루 지출 내역이 다음과 같다고 할 때 하루 지출 비용의 합계를 구한 후, 적정 지출 비용의 초과 여부를 출력

        땡땡이의 하루 지출 내역
        - 교통비 3000원
        - 식비 6000원
        - 음료비 3000원
       
        하루 적정 지출 비용 10,000원을 초과했을 경우 '000원 초과' , 초과 하지 않았을 땐 ' 돈 관리 잘했습니다!'를 출력
        */

      var price1 = 3000; //교통비
      var price2 = 6000; //식비
      var price3 = 3000; //음료비

      var result = price1 + price2 + price3; 
      result = result > 10000 ? result - 10000 + "원 초과" : "돈 관리 잘했습니다!";

      document.write(result);

변수 result에는 오늘 지출 합계가 들어가있다. 

-원 초과값은

result - 10,000 + "원 초과" 로 써준다. 

 

result > 10000 이 true면 result - 10,000 + "원 초과" 라고 초과값을 구해서 브라우저에 출력하고

result > 10000 가 false면 '돈 관리 잘했습니다!' 라고 브라우저에 출력해라 

 

값이랑 문구 이을 땐 + 로 연결-

 


오차범위 


  //평균 체중을 구해서 평균체중이라면(오차범위 5키로) 00님은 '평균체중입니다' 아니면 '평균체중이 아닙니다'라고 출력

      var noraml_we = (height - 100) * 0.9;
      var result = weight >= noraml_we - 5 && weight <= noraml_we + 5;
      result = result ? userName + "님은 적정체중입니다" : userName + "님은 적정체중이 아닙니다.";
      document.write(result);

 

normal_we-5 거나 normal_we+5 에서 둘 다 true일 때 / userName + "님은 적정 체중입니다" 라고 출력해라