# 자바스크립트 연산.반복문



### 1. +&#x20;

```javascript
cosole.log("elies\'s book") // ellie's book 백슬러시를 이용해서 특수기호포함 문자를 출력
cosole.log("elies's \nbook") // ellie's ( \n 밑으로 떨어지게 해줌 ) book
// /t --> 탭을 의미함
cosole.log('1'+2); // 12 문자열에 숫자를 더하게 되면 숫자가 문자열로 변환되어 출력 
```

###

### 2. Numeric operators

```javascript
cosole.log(1 + 1) // 더하기
cosole.log(1 - 1) // 빼기
cosole.log(1 / 1) // 나누기
cosole.log(1 * 1) // 곱하가
cosole.log(1 % 1) // 나머지 
cosole.log(1 ** 1) // 거듭제곱
```

###

### 3.Increment and decrement operators

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

###

### 4. Assignment operators

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

###

### 5. comparison operators

```javascript
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)

### || (or)

```javascript
const value1 = true;
const value2 = 4 < 2; // false

// || (or)
console.log(`or : ${value1 || value2 || check()}`); //or : true check는 true를 리턴함

// && (and)
console.log(`and : ${value1 || value2 || check()}`); //or : false
 

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

// ! (not)
console.log(!value1); // flase; 

```

* **or은 처음에 true가 나오면 멈춘다.** :point\_right:  **어떠한것이 하나라고 true이면 true가 된다.**&#x20;
* **check()는 제일 마지막에 배치해야한다 true 값을 리턴하기 때문에**&#x20;
* **and는 간편하게 null 체크할때 많이 쓰인다.**&#x20;



### **7.**&#x45;quality

```javascript
const stringFive = '5';
const numberFive - 5;

// == loose equality, with type conversion
console.log( stringFive  == numberFive);//true
console.log( stringFive  != numberFive);//false

// === strict equality, no type conversion
console.log(stringFive  === numberFive); //false
console.log(stringFive  !== numberFive); //true
// strict equality를 사용하는것이 좋다.

// object equality bu reference
const ellie1 = {name: 'elie'};
const ellie2 = {name: 'elie'};
const ellie3 = ellie1;
console.log( ellie1 == ellie2); // flase
console.log( ellie1 === ellie2 ); // flase
console.log( ellie1 === ellie3); // true

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

```

###

### 8.if, else 문

```javascript
// if, else if , else 
const name = 'ellie';
if (name === 'ellie'){
 console.log('welcome, Elie!');
 }else if (name === 'coder'){
 console.log('You are amazing coder!');
 }else{
  console.log('unkwnon');
 }
}
```

###

### 9.Ternary operator

```javascript
// condition ? value1 : value2 ; 
const name = 'df';
console.log(name === 'ellie' ? 'yes' : 'no'); //no
```

간단하게 valuie 값이 같은지 확인할 때 사용한다.



### 10.Switch문

```javascript
const browser = 'IE';
switch (browser){
 case 'IE':
 console.log('go away');
 break; 
 case 'Chrome':
 console.log('love you');
 break; 
 case 'Firefox':
 console.log('love you');
 break; 
 decault:
 console.log('same all! ');
 break; 
}
```

if else가 반복되는 상황이라면 Switch문을 사용해주면 좋다.



### 11. while (반복문)

```javascript
let i = 3;
while (i > 0){
 consile.log(`while: ${i}`); // 3,2,1 이 출력됨 0이되면 멈춤
 i--;
}

// do while문은 do의 구간을 먼저 실행시키고 while문을 실행하게됨.
do{
 console.log(`do while: ${i}`);
 i--;
}while(i > 0);
```

###

### 12.for문

```javascript
// 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){
 consloe.log(`inline variable for:${i}`); // for: 3 for: 2
}

//nested loops
for(let i = 0; i < 10; i++){ // 0 일때 1일때 3일때 .. 
 for(let j = 0; j < 10; j++){ // 1일때 0-9 까지 돌리고 ..2일때 0-9까지 돌리고....
    console.log(`i: ${i}, j:${j}`);
  }
}
```

###

### 13.break, continue

* **break** :point\_right: **실행하던것을 멈춤**&#x20;
* **continue** :point\_right: **실행하다 그것만 멈추고 뒤부터 다시 실행**
