파이썬으로 따지면 print(), C로 따지면 printf() 정도 되는 것 같다. 즉각적으로 원하는 것을 출력하여 확인할 수 있는 개발에서의 필수적인 기능이다.
console.log(); //함수:기능, 동작
//콘솔안에 있는 로그라는 함수(콘솔.로그 : 출력하는 것)
console.log("a-zA-Z가-하"); // double quotation으로 출력
console.log('a-zA-Z가-하'); // single quotation으로 출력
console.log(`a-zA-Z가-하`); // 백틱으로 출력: 위 두 개와 달리 엔터 치면 엔터 포함해서 출력 가능함. (나머지는 X)
//콘솔출력 >> "로그확인", 혹은 "로그찍기"라고 함
var num = 123;
let num = 123;
const user_name = "han";
string : 문자열
number : 정수, 실수 다 그냥 number로 표현됨
undefined : 정의되지 않은 변수형
array : 배열
object : 객체라는 것인데 배열도 여기에 포함됨
NaN : Not a number
boolean : true, false
RegExp : 정규표현식
//1.논리연산자
// &&, ||
console.log(true & true);//1
console.log(true && true);//true
console.log(true & false);//0
console.log(true && false);//false
console.log(true | true);//1
console.log(true || true);//true
console.log(true || false);//true
console.log(false | false);//0
console.log(false || false);//false
console.log('연산자..6');
//1. 조건연산자 : 연산항이 3개여서 삼항연산자라고도 함.
// 조건연산결과 ? 참리턴값 : 거짓리턴값
console.log(true ? "kim" : "lee");
console.log(false ? "kim" : "lee");
console.log(true == true ? "kim" : "lee");
console.log(true && true ? "kim" : "lee");
console.log("hello" ? "kim" : "lee");
console.log("" ? "kim" : "lee");
console.log(0 ? 111 : 222);
let result = true ? "kim" : "lee";
console.log("result:", result);
let avg = 70;
console.log(avg >= 90 ? "A" : "B");
console.log(avg >= 90 ? "A" : avg >= 80 ? "B" : "C");
// 가장 처음 참조건 블럭만 실행
if (avg>=90) {
console.log("A");
let test = "kim";
console.log(test);
} else if (avg>=80) {
console.log("B");
let test = "kim2";
console.log(test);
} else if (avg>=70) {
console.log("C");
let test = "kim3";
console.log(test);
} else {
console.log("D");
}
var a = 33;
// let 변수 {}에서 사용하기.
// 조건문에 들어가는것:
// boolean(false), "", 0, undefined, null,,,,
// boolean(true), "text", 10, 3.33,,,
if (true) {
let a = 10; // 지역변수 - 코드블럭에서 유효
a = 10; // ** let 변수 선언 없이 사용하면 전역 변수 : 주의 **
console.log("if", a);
if (true) {
let a = 99;
console.log("if~if", a);
}
}
console.log("script", a);
var b = 44;
if ("kim") {
var b = 444; //조건문 블럭을 무시한다
console.log("if", b);
}
console.log("script", b); //444
console.log("switch~case");
// 값 매칭으로 분기처리
let name = "kim2";
switch (name) {
case "kim":
console.log("Hello1", name);
break; // 해당 케이스만 실행할 거면 break 넣고 만약에 아래 것까지 다 실행하고 싶다 하면 break 없애면 됨.
case "kim2":
console.log("Hello2", name);
break;
case "kim3":
console.log("Hello3", name);
break;
default:
console.log("GoodBye", name);
break; // default에서는 생략가능
}
let su = 10;
switch (su) {
case 1:
console.log("1~10");
break;
case 2:
console.log("11~20");
break;
default:
break;
}
let avg = 88;
console.log(avg/10);
console.log(parseInt(avg/10));
switch (parseInt(avg/10)) {
case 9: case 10:
console.log("A");
break;
case 8:
console.log("B");
break;
case 7:
console.log("C");
break;
default:
console.log("D");
break;
}
// 횟수, 길이,,, 카운트,, 만큼 반복하고자 할 때 for 사용
//0-9 : 10
for (let i = 0; i < 10; i++) {
console.log("hello", i);
}
// for (let i = 'a'; i < 'z'; i++) { 이렇게만 출력하면 그냥 a만 나오고 끝남. 알파벳을 정수로 변환하는 기능이 없음.
for (let i = 97; i < 97+26; i++) {
console.log("hello", i);
console.log(String.fromCharCode(i));
console.log(String.fromCharCode(i).toUpperCase());
}
// forEach함수를 이용하는 방법 : for문 없이 배열 요소를 출력해줌.
arr.forEach(function name(item, index) {
console.log(item, index, arr[index]);
});
for (let i = 0; i < 10; i++) {
console.log(i);
if(i==5) {
break;
} //if 문의 블럭을 제외한 가장 가까운 블럭 탈출
}
console.log("===");
for (let i = 0; i < 10; i++) {
if(i==5) {
continue;
}
console.log(i);
// 건너뛰고 싶을 때
}
// label을 부여하여 브레이크포인트 지정가능.
first : for (let x = 0; x < 3; x++){
for (let i = 0; i < 10; i++){
console.log(x, i);
if(i==5) break first;
}
console.log("===");
}
//갯수,길이가 정해져있지않고 무한반복을 전제로할경우.
//while문을 사용하게되며,break문으로 제어가능.
let i = 0;
while (i<10) {
console.log(i);
i++;
}
//while문이 참일때만 반복문 실행
while(true){
x = prompt("종료하시려면 x입력","x");
console.log("x:",x);
if(x==='x')break;
}
//조건식이 false라 하도라도 반드시 한번은 do블럭을 실행
do{
x = prompt("종료하시려면 x입력","x");
console.log("x:",x);
if(x==='x')break;
}while(false);
다른 문법과 똑같아서 생략