Operators

Hunter_Joe·2023년 3월 31일
0

JavaScript

목록 보기
4/10
post-thumbnail

Basic Operators

Remainder( % )

  • 홀/짝
    홀수 : x % 2 = 1
    짝수 : y % 2 = 0

  • x값 보다 작은 수를 얻고 싶을 때
    a % x = a ~ x 사이의 값만 반환

Exponentiation(Power)

* 거듭제곱 

const num = 3**2; 
console.log(num) // 9

연산자 줄여서 작성하기

let num = 10;
//num = mum + 5;
num += 5;

console.log(num); // 15
  • 덧셈, 뺄셈, 곱셈, 나눗셈 , 나머지 : 도 수식 동일

Increment, Decrement

증가 연산자

  • 변수에만 사용 가능
let num = 10;
let result = num++

console.log(result); // 10

  • 증가시키기 전의 값을 result에 할당하고 10 반환
let num = 10;
let result = ++num

console.log(result); // 11

  • 증가시킨 값을 result에 할당하고 11 반환

감소 연산자

  • 변수에만 사용 가능
let num = 10;
let result = num--;

console.log(result); // 10
  • 감소시키기 전의 값을 result에 할당하고 10 반환
let num = 10;
let result = --num;

console.log(result); // 9
  • 감소시킨 값을 result에 할당하고 9 반환

비교 연산자

Equality Operators ( = )

console.log(a = 3); // a = 3
console.log(a == 3); // true
console.log(3 === '3'); // false
  • =은 0과 false를 구분하지 않는다
  • 할당 연산자 ( = ) : 3의 값을 a에 할당
  • 동등 연산자 ( == ) : 피연산자들을 비교한다
  • 일치 연산자 ( === ) : 피연산자들을 일치 + 자료형의 값까지 비교한다

    null, undifined

    console.log(
     null == undifined, // true (비어있는걸로 비교)
     null === undifined // false(자료값이 다름)
    );

    null, 0

    console.log(
     null > 0,   ..//false  
     null < 0,   ..//false
     null == 0,  ..//false
     null>= 0    ..//true
    );

Logical Operators

논리 연산자

|| ( OR )

  • 여러개 중 하나라도 truetrue
  • 모든 값이 false일 때만 false를 반환
  • OR은 첫번째 true를 발견하는 즉시 평가를 멈춤

&& ( AND )

  • 여러개중 하나라도 falsefalse를 반환
  • 모든 값이 true일 때만 true를 반환
  • AND는 첫번째 false를 발견하는 즉시 평가를 멈춤
  • AND의 우선순위가 OR보다 앞선다

Not ( ! )

  • !true/fasle를 반대 값으로 반환
a!= 3 // true or false

console.log(3 != 3) // false 
console.log(1 != 3) // true
  • !=으로 비교하면 반환 값은 항상 boolean(참/거짓)으로 반환

평가

여군가 있고 시력이 좋은 여군

운전면허 : 전체 군인의 80%
시력 : 전체 군인의 60%
여군 : 전체 군인의 7%

-> "여군인데 시력이 좋고 운전면허가 있는 사람" 순서로 작성하는것이 좋음
첫번째 여군 평가에서 93%를 걸러낼 수 있음 (성능 최적화의 도움이 됨)

논리 연산자의 우선순위

* 조건
.//남자이고, 이름이 Joe 이거나 성인이면 통과 
 
 const gender = 'F';
 const name ='Jenny';
 const isAdult = true;
 
 if(gender === "M" && name ==="Joe" || isAdult) {
 	console.log("Pass"); {
    } else {
    console.log("Fail");}
 }
 
 // "Pass" (위의 * 조건대로라면 "Fail"이 나와야 정상)
* 수정 

 const gender = 'F';
const name ='Jenny';
const isAdult = true;

if(gender === "M" (&& name ==="Joe" || isAdult)) {
	console.log("Pass"); {
   } else {
   console.log("Fail");}
}

// "Fail"
  • &&의 우선순위가 ||보다 높기 때문에 발생한 문제
profile
hunting season

0개의 댓글