-
[JavaScript] 기초문법2 (+ 연산자, 증가, 감소, 비교, 논리, 조건문)React 2022. 10. 9. 11:25
연산자
%는 나머지 값을 출력할 때 사용한다. 특정 숫자를 2로 나눴을 때 나머지가 1이면 홀수, 0이면 짝수임을 알 수 있다. 그리고 어떤 값보다 작은 수만 출력하고 싶다면, 그 숫자로 나눠서 나올 수 있는 나머지 값들을 구하면 된다. 예를 들어 a%5를 하면, 0~4까지의 수만 나머지가 될 수 있다는 걸 알 수 있다.
**를 쓰면 거듭제곱을 의미한다. 2**3 은 2*2*2 로 결과값은 8 이다.
a+=1, a-=1, a*=2, a%=2 처럼 연산자를 줄여서 사용할 수도 있다.
let a=5; a+=1; console.log(a) //6 a-=2 console.log(a) //4 a*=2 console.log(a) //8 a/=2 console.log(a) //4 a%=2 //나머지 console.log(a) //0
증가 연산자, 감소 연산자
let a=10; a++ ++a console.log(a); //12 let b=10; b-- --b console.log(b); //8 let c=10; let num1=c++; console.log(num1); //10 let d=10; let num2=++d; console.log(num2); //11
변수에 ++ 붙이면 1이 증가하고, --를 붙이면 1이 감소하게 된다. 바로 다른 변수에 대응시킬 때는, 반드시 ++를 변수 앞에 붙여야 증가된 후의 값이 대응된다. 뒤에 붙이면 증가하기 전의 값이 대응된다.
비교 연산자
a=3 처럼 =을 하나만 쓰면 변수에 값을 대응시키는 의미이므로, '같은지' 비교할 때는 == (동등 연산자) , '다른지' 비교할 때는 != 를 사용한다. 이때 참이면 True, 거짓이면 False가 출력된다.
그런데 == 로 숫자형과 문자형을 비교하면 포함하고 있는 값이 같을 뿐인데 True로 출력된다. 따라서 데이터 타입까지 완벽하게 비교하기 위해서는 3번 써서 ===(일치 연산자)로 사용해야 한다. 가급적 ===으로 써서 타입까지 비교하는 것이 좋다.
let a=10; let b='10'; console.log(a==b); //true console.log(a===b); //false
조건문
if 문 ( )안의 조건은 항상 True 또는 False로 전환된다. 따라서 if문은 주어진 조건이 True이면, 중괄호 안의 동작을 실행한다. else절을 추가해서, 주어진 조건이 False일 때 실행할 동작도 지정할 수 있다.
그리고 else if 를 추가하면 새로운 조건이 True가 될 때 실행할 동작을 추가할 수 있다.
const a=12; //만나서 반갑습니다. if(a<10){ console.log('안녕하세요.'); }else if(a===12){ console.log('만나서 반갑습니다.') }else{ console.log('조심히 가세요.'); }
논리 연산자
|| (or) 는 여러 개 중 하나라도 True이면, True를 반환한다. 모든 값이 False일때만 False를 반환한다.
&& (and) 는 모든 값이 True일때만 True를 반환한다. 하나라도 False이면, False를 반환한다.
! (not) 은 True와 False를 서로 반대로 바꿔주는 역할이다. 예를 들어, !True 는 False이다.
const age = prompt('나이가 어떻게 되세요?'); //20 const isAdult=age>19; //True if(!age){ //False면 여기 console.log('어른이 아닙니다.') }else{ //True면 여기 console.log('어른입니다.') }
or 은 아무리 여러 가지 조건을 작성해도, 첫번째 True를 발견하는 즉시 평가를 멈춘다. 즉, 첫번째 True인 조건 다음에 나오는 조건들은 읽어보지 않는다. 마찬가지로 and 도 첫번째 False를 발견하는 즉시 평가를 멈춘다.
따라서 조건문을 작성할 때 간단한 작업에서 복잡한 작업 순으로 나열하는 것이 좋다. 또한 더 많은 데이터를 걸러낼 수 있는 조건부터 나열한다면, 처리 속도를 눈에 띄게 줄일 수 있다.
논리 연산자에서 || 은 && 보다 우선적으로 실행된다.
//남자이고, 이름이 Mike이거나 성인이면 통과이다. const gender='F'; const name='Jane'; const isAdult=true; if(gender==='M' && name==='Mike' || isAdult){ console.log('통과입니다.') } //통과입니다.
그래서 name==='Mike' || isAdult
이 문장이 먼저 평가되어 버렸고, || 은 하나라도 true이면 true를 반환해주기 때문에 조건은 true가 된다.
따라서 원하는 대로 평가되게 하고 싶다면 ( )로 감싸주어야 한다.
//남자이고, 이름이 Mike이거나 성인이면 통과이다. const gender='F'; const name='Jane'; const isAdult=true; if(gender==='M' && (name==='Mike' || isAdult)){ console.log('통과입니다.') }else{ console.log('통과하지 못했습니다.') } // 통과하지 못했습니다.
외부 참조 링크
https://www.youtube.com/watch?v=KF6t61yuPCY
'React' 카테고리의 다른 글
[JavaScript] 기초문법4 (+ 함수, 선언문, 표현식, 화살표 함수, 호이스팅, ES6) (0) 2022.10.12 타입스크립트(TypeScript)란? (+ 우아한 형제 웹 프론트엔드 개발 직무 모집, DevOps) (0) 2022.10.10 [JavaScript] 기초문법3 (+ 반복문 for, while, break, continue, switch) (0) 2022.10.10 [JavaScript] 기초문법1 (+ 변수, 자료형, 형변환, 알림창 함수) (2) 2022.10.08 React(리액트)란? (+ 사용하는 이유) (0) 2022.10.07