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

### 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: **실행하다 그것만 멈추고 뒤부터 다시 실행**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://leeboa.gitbook.io/study/_/untitled.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
