자바스크립트 연산자, if문 for문 switch문

2021. 5. 13. 18:30TIL/자바스크립트

728x90

 1. String concatenation 문자연결

console.log('my' + ' cat');
console.log('1' + 2);
console.log(`string literals:
''''
1 + 2 = ${1 + 2}`);

 

2. Numeric operators 숫자연산자

console.log(1+1); //add
console.log(1-1); //substract
console.log(1/1); //divide
console.log(1*1); //multiply
console.log(5%2); //remainder
console.log(2**3); //exponentiation

 

3. Increment and decrement operators +,-

let counter = 2;
const preIncrement = ++counter;
// 1) counter = counter + 1;
// 2) preIncrement = counter;
console.log(`preIncrement: ${preIncrement}, counter: ${counter}`);

const postIncrement = counter++;
// 1) postIncrement = counter;
// 2) conter = counter + 1;
console.log(`postIncrement: ${postIncrement}, counter: ${counter}`);

 

4. Assignment operators =

let x = 3;
let y = 6;
x += y; //x = x + y; 
x -= y;
x *= y;
x /= y;

 

5. Comparison operators 

console.log(10 < 6); // less than
console.log(10 <= 6); // less than or equal
console.log(10 > 6); // greater than
console.log(10 >= 6); // greater than or equal

 

 6. Logical operators: || (or), && (and), ! (not)

const value1 = false;
const value2 = 4 < 2;

//  || (or) 1가지라도 true면 true, 앞쪽에서 true가 나오면 뒤쪽은 실행하지않음
console.log(`or: ${value1 || value2 || check()}`);
//  무거운 함수들은 뒤쪽에 배치하는 것이 효율적이다

// && (and), finds the first falsy value ,앞에서 false가 나오면 뒤쪽은 실행하지않음
console.log(`and: ${value1 && value2 && check()}`);

function check() {
for (let i = 0; i < 10; i++){
//wasting time
console.log('😱');
}
return true;
}

// ! (not) 반대값
console.log(!value1); //true

 

7. Equality

const stringFive = '5';
const numberFive = 5;

// == loose equality, with type conversion 타입신경X
console.log(stringFive == numberFive); //true

// === strict equality, no type conversion 타입비교O
console.log(stringFive === numberFive); //false

// object equality by reference
const bella1 = { name: 'bella'};
const bella2 = { name: 'bella'};
const bella3 = bella1;
console.log(bella1 == bella2); //false
console.log(bella1 === bella2); //false
// object는 메모리에 탑재될 때 reference형태로 저장된다. bella1,2에는 각기 다른 reference를 갖고있기때문에 false가 나옴
console.log(bella1 === bella3); //true

// equality - puzzler
console.log( 0 == false); //ture
console.log( 0 === false); //false
console.log( '' == false); //ture
console.log( '' === false); //false
console.log( null == undefined); //ture
console.log( null === undefined); //false

 

8. Conditional operators: if 조건연산자

const name = 'abc';
if (name === 'bella') {
    console.log('Welcome, Bella!');
} else if ( name === 'coder'){
    console.log('You are amazing coder');
} else {
    console.log('unknown');
}

 

9. Ternary operator: ? 삼항연산자

 - condition ? value1 : value2;

console.log(name === 'bella' ? 'yes' : 'no')
// name이 bella가 맞으면 yes 아니면 no

 

10. Switch statement

 - if else, for 문을 중첩적으로 사용해야 할 경우 switch문을 사용하는 것이 더 간단하고 가독성을 높여준다

const browser = 'IE';
switch (browser) {
    case 'IE':
        console.log('go away!');
        break;
    case 'Chrome':
    case 'fireFox':   //진행내용이 같을경우 case만 반복적으로 써주면 적용이 가능
        console.log('love you!');
        break;
    default:
        console.log('same all!');
        break;
}

 

11. Loops

 - false가 나올때까지 무한반복

let i = 3;
while (i > 0) {
    console.log(`while: ${i}`);
    i--;
}

// do while loop, body code is executed first, then check the condition.
do {
    console.log(`do while: ${i}`);
    i--;
}while (i>0);

// for loop, for(begin; condition; step)
for (i = 3; i > 0; i--){
    console.log(`for: ${i}`);
}

for (let i = 3; i > 0; i= i -2) {
    //inline variable declaration
    console.log(`inline variable for: ${i}`);
}

// nested loops CPU에 좋지않은 방법
for (let i= 0; i < 10; i++) {
    for (let j = 0; j <10; j++) {
        console.log(`i: ${i}, j: ${j}`);
    }
} 

 

12. break, continue

break 반복문 완전히 끝내기, continue 현재것만 스킵하고 다음으로 넘어가는 것

 

Q1. 0부터 10까지 continue를 이용해 짝수만 출력하기

for (let evenNumber = 0;  evenNumber < 11; evenNumber++) {
    if (evenNumber % 2 !== 0){
        continue;
    }
    console.log(`evenNumber: ${evenNumber}`);
}

//실제로 사용할땐 바로 출력하도록 만드는 것이 더 효율적
for (let evenNumber = 0;  evenNumber < 11; evenNumber++) {
    if (evenNumber % 2 === 0){
        console.log(`evenNumber: ${evenNumber}`);
    }
}

 

Q2. 0부터 10까지 출력하되, break를 이용해 8까지만 출력하고 멈추기

for (let number = 0; number < 10; number++ ){
    if (number > 8) {
        break;
    } 
    console.log(`number: ${number}`);
}

'TIL > 자바스크립트' 카테고리의 다른 글

Object  (0) 2021.05.18
class object 객체지향  (0) 2021.05.17
Function 함수  (0) 2021.05.14
변수 var, let, const  (0) 2021.05.12
JavaScript를 html에 연결하는 효율적인 방법  (0) 2021.05.12