***
연산자는 우선순위가 중요 !
--> () 로 우선순위를 정해서 연산
산술 연산자
--> ++, -- 등등
ex)
let num = 14
let num1 = ++num;
--> 15 15 출력 ( 증가시킨 값을 넘겨주고 그 다음을 출력 )
ex)
let num = 14
let num1 = num++;
--> 14 15 출력 ( 증가하기 전 값을 넘겨주고 그 다음에 증가 )
비교 연산자
--> >, <, >=, <=, ==, != 등등
--> 결과값은 true 나 false 로 나타남
ex) operator1.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//산술 연산자 (++, --)
let num = 10;
num = num + 1;
num = num + 1;
console.log(num);
num++; // num = num + 1; 과 같음
console.log(num);
let num1 = num++;
console.log(num1, num);
console.log("----------------------------------")
//비교 연산자 (>, <, >=, <=, ==, !=,)
num = 10;
num1 = "10";
console.log(num == num1); // type 을 비교하는 것이 아닌 값을 비교
console.log(num === num1); // type 을 비교
console.log(num != num1);
num = 0;
num1 = false;
console.log(num == num1); // 0과 false 는 같은 의미로 사용
console.log("----------------------------------")
</script>
</head>
-->
논리 연산자
--> &&, ||, ! 등
숫자 에서 0 과 false 는 같고, 0을 제외한 숫자는 true 문자 에서 ' ' (공백) 은 false 와 같고, 공백을 제외한 문자는 trueex)
console.log(1 && 0); --> true && false 이므로, 처음에 만난 거짓 데이터는 0
console.log(0 && 1); --> flase && true 이므로, 처음에 만난 거짓 데이터는 0
console.log(1 && 2); --> true && true 이므로, 마지막 출력 값은 2
console.log(1 && 2 && 0, 7 && 4 && 5); --> 0 5 출력
혈당(치환)연산자
--> =, +=, -=, /=
ex) 03_operator2.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//논리 연산자 (&&, || , !)
let a = true;
let b = false;
// 0은 false로 취급되고 0을 제외한 나머지 숫자들은 true값으로 취급된다
// 단, true나 false 로 출력이 아닌 비교한 숫자중 뒤에있는 숫자가 출력
console.log(a&&b);
console.log(a||b);
console.log(1 && 0, 1 && 2, 2 && 1);
console.log(1 && 2 && 0, 1 && 0 && 2);
console.log(1 && 2 && 0, 7 && 4 && 5);
console.log("A" && "B"); // 거짓이 없으므로 마지막 비교값 출력
console.log("A" || "B"); // A가 true 이므로 A 리턴
console.log(" " || "B"); // 공백은 false 이니까 B리턴 아님 ??????????
console.log("A" || "B" || " "); // A가 true 이니까 A리턴
console.log(null || 1 || 0);
console.log(!0, !!0, !!!0);
console.log("----------------------------------")
// 할당(치환) 연산자 (=, +=, -=, /=, ...)
a = 10;
a = 5;
a = 7;
console.log(a);
b = 10;
b += 5; // b = b + 5
b += 7; // b = b + 7
console.log(b);
</script>
</head>
<body>
</body>
</html>
-->

--> 문장을 제어할 수 있는 문장
***
ASCII
--> 2진수를 10진수로 바꿔준다
(ex) 만약 문자 c 를 입력하면 컴퓨터는 99로 입력받았다
조건문
if(조건문) {
실행할 코드
} if(조건문) {
실행할 코드
}
else {
}
if(조건문) {
실행할 코드
}
else if(조건문){
실행할 코드
}
else if(조건문){
실행할 코드
}
else{
}
ex) 04_control_condition
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
let num = window.prompt("값을 입력:");
if(num % 2 === 0)
console.log("짝수");
else
console.log("홀수");
</script>
</head>
<body>
</body>
</html>
-->
switch
default 문은 생략 가능
break 적는거 까먹지 말기
switch (수식, 변수) {
case 값:
실행할 코드;
break;
case 값:
실행할 코드;
break;
...
[ default:
실행할 코드 ];
}
if(조건문){
코드
...
if(조건문){
코드
...
}
}반복문
***
기본적인 반복문의 구조
--> 초기화 + 조건문 + 카운터
아주간단
조건이 항상 참일 경우로 생각
while(조건){
실행할 코드;
}
do {
실행할 코드;
}whilefor
for(초기화; 조건식; 카운터){
실행할 코드;
}
배열 데이터일때
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
const fruits = ["Apple", "Banana", "Cherry"];
for(i=0; i<fruits.length; i++){ // i<3을 i<fruits.length 로 표현
console.log(fruits[i]);
}
</script>
</head>
<body>
</body>
</html>
위의 for문을 좀 더 간단하게
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
for(const item of fruits)
console.log(item);
</script>
</head>
<body>
</body>
</html>
객체 데이터일때 --> index 가 없으므로 반복문 사용 불가능
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
const user = {
name:"홍길동",
age: 20,
isValid: true,
email: 'hong@mail.net'
}
let u; // user에서 불러온 데이터를 받아줄 변수 u (변수는 임의지정)
for(const u in user){
console.log(u); // 키값을 불러온다
console.log(user[u]); // 키에 해당하는 값을 불러온다
}
</script>
</head>
<body>
</body>
</html>
반복문의 강제 중지
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
for(let i=0; i<10; i++){
if(i==5){
break;
}
console.log(i);
}
for(let i=0; i<10; i++){
if(i==5){
continue;
}
console.log(i);
}
</script>
</head>
<body>
</body>
</html>
반복문의 중첩
for () {
for(){
실행할코드
}
실행할코드
} **********
**********
**********
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
for(let i=0; i<3; i++){
for(let j=0; j<10; j++){
document.write("*");
}
document.write("<br>");
}
</script>
</head>
<body>
</body>
</html>
*
**
***
****
*****
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
for(let i=0; i<5; i++){
for(let j=0; j<i+1; j++){
document.write("*");
}
document.write("<br>");
}
</script>
</head>
<body>
</body>
</html>
***
*****
*******
*********
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
</script>
</head>
<body>
</body>
</html>