HTML: 웹 문서의 뼈대
CSS: 웹 문서의 꾸밈
JavaScript: 사용자 동작에 반응,웹브라우저에서 사용,작동하는 프로그래밍언어로 기존의 웹페이지보다 많은 기능을 구현할 수 있다.
코드실행기 : 구글 크롬 개발자도구 실행 (Ctrl+Shift+i 나 F12)
코드에디터 : Visual Studio Code
개발폴더 설정 후 Visual Studio Code에서 폴더열고 파일 작성
확장프로그램 설치
-Prettier, Live Server
<!DOCTYPE html>
<html lang="en">
<head>
<script src="./index.js"></script>
</head>
<body>
<h1>React로 시작하는 프론트엔드</h1>
</body>
</html>
! 입력하면 HTML 구조 자동완성
예약어: 자바스크립트가 처음만들어질때 정해놓은 단어
식별자: 이름붙일때 사용하는 단어로 변수명이나 함수명 사용, 키워드를 사용할 수 없다.숫자로 시작할 수 없고 특수문자는 _와 $만 허용, 공백문자를 포함할 수 없다.
주석: 프로그램코드를 설명할 때 사용하고 프로그램 진행에는 전혀 영향을 주지 않는다.
HTML 태그 주석 : 로 문자열을 감싸 생성
자바스크립트 주석
한 줄 주석: //
여러 줄 주석: /* */
출력: 구글 크롬 개발자 도구에서 Console탭에서 값 입력하면 결과가 출력됨
-알림창에 출력
<script>
alert("Hello JavaScript")
</script>
-콘솔에 출력
<script>
console.log("Hello JavaScript")
</script>
-확인창 출력
<script>
confirm("Hello Confirm message")
</script>
입출력
<script>
let name = prompt("이름을 입력하세요");
</script>
<script>
document.write("<h1>어서오세요</h1>");
</script>
자료(data)
문자열 자료형
<script>
console.log("안녕하세요");
console.log('안녕하세요');
</script>
숫자 자료형
소수점이 있는 숫자와 없는 숫자를 모두 같은 자료형으로 인식
숫자 연산자
-더하기 연산자,빼기 연산자,곱하기 연산자,나누기 연산자,나머지 연산자
불 자료형
불 논리합/논리곱 연산자
자료형검사
-typeof 연산자
변수
-복합 대입 연산자 +=,-=,*=,/=,%=
-증감 연산자 변수++,++변수,변수--,--변수
타입변환 함수 사용 (명시적 변환)
||(OR)
let hour = 12;
let isWeekend = true;
if (hour < 10 || hour > 18 || isWeekend) {
alert( '영업시간이 아닙니다.' ); // 주말이기 때문임
}
&&(AND)
let hour = 12;
let minute = 30;
if (hour == 12 && minute == 30) {
alert( '현재 시각은 12시 30분입니다.' );
}
!(NOT)
result = !value;
if 조건문
if(조건){
조건의 결과가 true일 때 실행할 명령;
}
if(조건){
조건의 결과가 true일 때 실행할 명령;
}else{
조건의 결과가 false일 때 실행할 명령;
}
삼항연산자
(조건)? True일때실행명령 : false일때실행명령;
let result = condition ? value1 : value2;
// 1. string type
let myName = "이름";
let myLocation = "지역";
const myName2 = "한번더선언"; //Cannot redeclare block-scoped variable 'myName'. ts(2451) //에러발생
let introduce = `${myName}은 ${myLocation}에 살고 있습니다.`;
console.log(myName+myLocation);
console.log(introduce);
// 2. Number type
let num1 = 10
let num2 = 1.5;
let num3 = -20;
console.log(num1+num2);
console.log(num1-num2);
console.log(num1*num2);
console.log(num1/num2);
//3. Boolean Type
let isEmpty = false;
let isOver = true;
//4. Null Type 명시적으로 비어있다,아무것도 할당하지 않았다.
let empty = null;
console.log(empty); //null
//5. Undefined Type 선언해놓고 아무것도 초기화하지않았다.
let none;
console.log(none); //undefined
// 미션 1> 이름 받아 화면에 출력하기
// 1) 사용자 이름 입력받기
// 2) 이름을 웹 브라우저 화면에 표시
// 3) 콘솔창에도 표시하기
let yourName = prompt("이름을 입력하세요");
document.write(yourName);
console.log(yourName);
// 미션 2> 두 수를 입력받아 +,-,*,/,% 결과를 출력하기
let numone = Number(prompt("첫번째숫자를 입력하세요"));
let numtwo = Number(prompt("두번째숫자를 입력하세요"));
console.log(numone + numtwo);
console.log(numone - numtwo);
console.log(numone * numtwo);
console.log(numone / numtwo);
document.write(numone + numtwo);
document.write(numone - numtwo);
document.write(numone * numtwo);
document.write(numone / numtwo);
// true, false 확인
console.log(Boolean("0"));
console.log(Boolean(" "));
console.log( 1 || 0); //1
console.log( true || 0); //true
console.log( `chris` || 0); //`chris`
console.log( null || 0); //0
console.log( null || 1); //1
console.log( null || `chris`); //`chris`
console.log( null || 0 || 1); //1
console.log( null || 0 || `chris`); //`chris`
console.log( undefined || null || 1); //1
alert( 1 && 0); 0
alert( 1 && 5); 5
alert( 1 && 2 && null && 3); null
alert( 1 && 2 && 3); 3
alert( null && 5); null
alert( 0 && "아무거나 와도 상관없습니다."); 0
// or는 앞쪽에 true한 조건을 배치해주고, and는 앞쪽에 false한 조건을 배치해주는게 더 빠르게 연산을 할 수 있다.
alert(!true); //false
alert( !0 ); //true
alert( !! "non-empty string"); //true
alert( !! null); //false
alert( Boolean("non-empty string")); //true
alert( Boolean(null)); //false
미션 > 입력된 숫자가 3의 배수인지 판별하기
사용자에게 숫자를 입력받고 입력된 숫자가 3의배수인지 확인하고 출력하기, === 값 타입 모두 비교가능
const number = Number(prompt("숫자를 입력해주세요."))
if(number % 3 === 0){
alert("3의 배수입니다.")
}else{
alert("3의 배수가 아닙니다.")
}
미션 > 입력된 숫자가 3의 배수인지 판별하기-취소누름추가,삼항연산자로변환
const number = prompt("숫자를 입력해주세요.")
if(number === null){
alert("취소를 눌렀습니다.")
}else{
number = Number(number);
(number % 3 === 0) ? alert("3의 배수입니다.") : alert("3의 배수가 아닙니다."); //삼항연산자
// if(number % 3 === 0){
// alert("3의 배수입니다.")
// }else{
// alert("3의 배수가 아닙니다.")
// }
}
// 미션> 로그인구현
let id = prompt("아이디를 입력하세요.");
if(id === "Admin"){
let pw = prompt("비밀번호를 입력하세요.")
if(pw === "pwd1234"){
alert("환영합니다!");
} else if(pw === "" || pw === null){
alert("취소되었습니다.");
} else {
alert("인증에 실패하였습니다.");
}
}else if(id === "" || id === null){
alert("취소되었습니다.");
}else{
alert("인증에 실패하였습니다.")
}