본문 바로가기
javascript

& 와 && 차이

by 아구몬선생 2022. 4. 11.

비교

& : 비트연산자, if(a&b) 왼쪽 오른쪽 모두 평가, 부울 데이터(bealean) 유형에서 작동하고 비트에서 작동

&& : 논리 연산자, if(1&b) 왼쪽 평가 후 조건에 맞아야 오른쪽 평가, 부울 데이터(bealean) 유형에서만 작동

&의 정의(비트 AND)

&는 논리 연산자(&)와 비트 연산자로 사용된다. 이진 데이터(이진법)뿐 아니라 부울에서도 작동

&연산자가 논리적 & 연산자로 사용될 때 두 표현식의 표현이 모두 참이면 참 그렇지 않으면 거짓을 반환

컴파일러는 표현식의 양쪽 측면을 평가할 수 있다 그러므로 표현식의 왼쪽이 거짓이더라도 오른쪽도 평가한다

예시

int a = 4, b = 5; 
system.out.println ((a == 6) & (b ++ == 6)); 
system.out.println ( "b ="+ b); // 출력 false b = 5

표현식의 왼쪽을 계산할 때 (a == 6) 결과는 false가되고 & 연산자는 결과의 오른쪽 표현식 (b ++ == 6)을 계산하면 b의 값이 증가해야 된다

또 다른 예시

  1. '&'가 '비트 연산자'로 사용되면 먼저 두 피연산자를 이진 형식으로 변환 한 다음 & 연산자를 비트별로 사용하여 연산
  2. 연산 후, 얻어진 결과는 2 진수 형태로되어 십진수로 변환
  3. 피연산자 중 하나의 비트가 0이면 결과는 0, 피연산자의 비트가 모두 1이면 결과 비트는 1
int a; a = 3 & 4; // 011 & 100 = 000 
system.out.println ( "a ="+ a); // 출력 a = 0

&&(단락 AND)의 정의

&& 연산자는 완전히 논리 연산자로 작동한다.

부울데이터 유형에서만 작동, 단락 회로 운영자라고도 한다.

표현의 왼쪽 부분 만 검사하기 때문입니다. 표현식의 왼쪽이 false이면 표현식의 오른쪽을 평가하는 데 신경 쓰지 않는다

예시

int a = 4, b = 5; 
system.out.println ((a == 6) && (b ++ == 6)); 
system.out.println ( "b ="+ b); // 출력 false b = 4

&와 &&의 주요 차이점

  1. & 연산자는 논리 연산뿐만 아니라 비트 연산에도 사용됩니다. 반면에 && 연산자는 부울 데이터 형식에서만 작동하는 논리 연산자
  2. & 연산자는 표현식의 양쪽을 평가하여 최종 결과를 얻지 만 && 연산자는 표현식의 왼쪽 만 평가하고 & false를 반환하면 표현식의 오른쪽을 평가하지도

결론:

& 및 && 연산자는 둘 다 부울 조건을 평가하는 데 사용되지만, & 연산자는 비트 연산에도 사용, & 연산자가 사용되는 식의 양쪽을 모두 평가할 필요가 있을 때 우리는 && 연산자를 사용할 수 있습니다.

'javascript' 카테고리의 다른 글

javascript 날짜 관련 모듈  (0) 2022.04.11
let const var 차이  (0) 2022.04.11