# 첫 번째 과제 : 변수와 자료형 ## 1번 과제 ``` let a = 1; let b = 2; console.log(a,b); let temp = a; a = b; b = temp; console.log(a,b); ``` 결과 : ![화면 캡처 2025-02-10 222142](https://hackmd.io/_uploads/H1kl0uPYkg.png) ## 2번 과제 ``` console.log(20 + 30); //50 console.log("20" + "30"); //2030 console.log("Hello" + " " + 2021);//Hello 2021 console.log(1 + 2 * 3); //7 console.log((1 + 3) ** 2); //**은 거듭제곱 연산자, 16 console.log(1 / 0); //1 console.log(6 % 2); //0 console.log(7.5 % 2); //1.5 console.log(5 == 5); //true console.log(5 === 5); //true console.log(5 == "5"); //true console.log(5 === "5"); //false console.log(5 != 5.0); //true console.log(5 !== 5.0); //false console.log("true" === true); //false console.log(5 <= 5.0); //true console.log(5 >= 5); //true console.log(true || true); //true console.log(true || false); //true console.log(true && true); //true console.log(true && false); //false console.log(!true); //false console.log(!false); //true ``` 결과 : ![화면 캡처 2025-02-10 222526](https://hackmd.io/_uploads/SJIUROwKyl.png) #### 틀린 문제 ``` console.log(1 / 0); console.log(5 != 5.0); ``` #### 오답 풀이 * console.log(1 / 0) : 0으로 나누기를 **Infinity**로 처리한다. * console.log(5 != 5.0) : 5와 5.0의 경우 정수와 실수라는 차이가 존재하지만 ==와 != 의 경우 느슨한 비교 연산자로 두 피연산자에 대해 암시적 형변환을 진행해 공통 자료형으로 바꾼 뒤 비교를 진행한다. 때문에 5 != 5.0은 false가 나온다. ## <br><span style="color:red"> 오늘 배운점 </span> 1. 자바스크립트에는 ==, !=와 같이 형변환을 자동으로 실행하는 느슨한 비교 연산자와 ===, !==와 같은 강제 형변환 없이 자료형과 값이 모두 일치할 경우에만 true를 반환는 엄격한 비교 연산자가 있다.<br> 2. ** 연산자는 거듭제곱 연산자이다.