javascript-2: 논리 연산자
논리 연산자
1. 연산자 줄여쓰기
기본값 | 줄여쓰기 |
---|---|
x = x+y | x+=y |
x = x - y | x-=y |
x= x * y; | x*=y |
x= x / y; | x/=y |
let num = 10;
num = num + 5;
console.log(num)
// -------줄여쓰기--------//
let num2 = 10;
num2 += 5;
console.log(num2);
2. string concatenation
- 숫자와 문자를 결합하면 숫자가 문자로 인식이 됨
console.log('1'+2);
3. 증가/감소 연산자
- 숫자 앞에 ++(–)을 입력 할 경우 값을 1만큼 증가(감소) 시킴
let counter = 2;
const preIncrement = ++counter;
// counter = counter + 1;
// preIncrement = counter;
console.log(`preIncrement: ${preIncrement}, counter: ${counter}`);
const postIncrement = counter++;
// postIncrement = counter;
// counter = counter + 1;
console.log(`postIncrement: ${postIncrement}, counter: ${counter}`);
const preDecrement = --counter;
// counter = counter - 1;
// preDecrement = counter;
console.log(`preDecrement: ${preDecrement}, counter: ${counter}`);
const postDecrement=counter--;
// postDecrement = counter;
// counter = counter - 1;
console.log(`postDecrement: ${postDecrement}, counter: ${counter}`);
* counter 앞에 ++를 할 경우 preIn(De)crement와 counter가 같지만
counter뒤에 ++를 할경우 counter는 +n1이 됨
4. 비교연산자
console.log(10<6);
console.log(10<=6);
console.log(10>6);
console.log(10>=6);
console.log(10 == 5);
console.log(10 != 5);
const a = 1;
const b = "1";
console.log(a === b);
5. OR (||)
-
여러 개 중 하나라도 true면 true , 즉, 모든 값이 false 일때만 fasle를 반환
예) 스티브 잡스는 한국인 이거나(OR) 남자이다. = true
예) 스티브 잡스는 한국인 이거나(OR) 여자이다. = false
-
OR은 첫번째 true를 발견하는 즉시 평가를 멈춤
예) 스티브 잡스는 남자이거나(OR) 한국인이다 (남자를 발견하는 즉시 true 판정)
const value1 = true;
const value2 = 4 < 2;
console.log(`or: ${value1||value2||check()}`);
* value2가 false일지라도 value1이 true 이기때문에 true로 판정
* 심플한 value를 앞에.. expression 이나 함수호출 하는것은 맨 뒤에 배치하는것이 좋음
const name = "Mike";
const age = 30;
if(name === 'Tom' || age >19){
console.log('통과');
}
* name이 Tom이거나 age가 19보다 크면 통과를 보여줄것 → 통과 (나이가 19보다 크기때문에)
6. AND(&&)
-
모든 값이 true 면 true. 즉, 하나라도 false 면 false를 반환함
예) 스티브잡스는 한국인 이고(AND) 남자이다. = false
-
AND는 첫번째 false를 발견하는 즉시 평가를 멈춤
예) 스티브 잡스는 한국인이고(AND) 남자이다. → 한국인을 발격하는 즉시 false반환
const value1 = true;
const value2 = 4 > 2;
console.log(`and: ${value1&&value2&&check()}`);
function check(){
for(let i=0; i<10; i++){
console.log('😱');
}
return false;
}
const name = "Mike";
const age = 30;
if(name === 'Tom' && age >19){
console.log('통과');
} else {
console.log('돌아가.');
}
7. NOT(!)
- 반대로 변환
- ture면 false / false면 true
const age = prompt('나이가..?');
const isAdult = age > 19
if(!isAdult){
console.log('돌아가..')
}
* 나이가 19보다 높지 않으면 (성인이 아니면) 돌아가..를 반환
8. Ternary operator: ?
-
condition ? value1 : value2;
(조건에 맞니? 맞으면 vaule1, 아니면 value2
const name = 'Tom'
console.log(name==='Mike'? 'yes': 'no');
댓글남기기