인프런/Java Script
22.02.09 변수와 기본 자료형 / 나이계산 프로그램, 글자색 바꾸기, 시간표시 예제
h.단디
2022. 2. 10. 03:25
[자바스크립트+jQuery 기초부터 실무까지 : 기초 Part.1]
변수
변수의 이름은 의미있게, 누가봐도 이게 뭘 지칭하는 건지 알 수 있게 지을 것.
여러 단어를 연결할 경우에는 낙타모양으로! ex)lastName
형식 : var 변수 = 저장할값or식
매개변수=parameter=인자값=arguments 전부 같은 말!
; 명령 실행의 구분선
() 선언부
{} 정의부, 구현부
자료형 - 컴퓨터가 처리하는 자료의 형태
웹브라우저 개발자 도구(콘솔창)에서 typeof 로 확인해볼 수 있음!
기본형 | number(숫자) | 따옴표 없이 표기한 숫자 | 정수 : 소수점x, 표현 방법에 따라 10진수, 8진수, 16진수 |
실수 : 소수점o, 컴퓨터 언어로 정밀한 실수 계산은 힘듬 | |||
string(문자열) | '나 "로 묶어서 나타냄 | 숫자도 따옴표로 묶으면 문자형이 됨 따옴표 안에 따옴표 넣어야 할 때는 ' " " ' or " ' ' " 처럼 사용 |
|
boolean(논리형) | True와 False 두 가지 값만 가지고 있는 유형 | 조건을 확인할 때 많이 사용 | |
undefined | 자료형을 지정하지 않을 때 나타나는 유형. | '처음부터 변수에 값이 할당되지 않았다'는 의미 | |
null | 값이 유효하지 않을 때의 유형 | '처음에 할당된 값이 더이상 유효하지 않다'는 의미 | |
복합형 | array(배열) | 하나의 변수에 여러 값을 저장하는 유형 | 배열의 index는 0부터 시작 값을 가져오려면 '배열이름[index]' |
object(객체) | 함수와 속성이 함께 포함된 유형 | 여러 자료를 {}로 묶은 것 key 와 value를 한 쌍으로 여러 자료 저장 |
자바스크립트는 미리 변수의 자료형을 지정하지 않음.
변수를 지정하고 원하는 값을 할당만 하면 됨!
나이계산 프로그램
코드가 너무 길면 보기 좋지 않음.
처음부터 js를 분리해서 코딩하는 건 힘듬. (참조할 부분 많으니까) 우선 html에서 코딩한 후에 정상 작동하는 거 확인하고 script 부분 잘라내기 해서 js 파일로 저장해주고 head에서 src로 불러서 쓰기!
HTML
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>age</title>
<link rel="stylesheet" href="css/age.css">
<script src="js/age.js"></script>
</head>
<body>
<button class="btn" onclick="calc()">나이 계산</button>
<div id="result" class="show">(결과값 표시)</div>
</body>
</html>
JAVAScript
function calc() {
var currentYear = 2022; //올해 년도를 변수 currentYear에 저장함
var birthYear = prompt("태어난 년도를 입력하세요.", "YYYY");
//사용자로부터 입력 받은 값으로 변수 birthYear에 저장함.
var age = 0;
//변수 age를 0으로 초기화
age = currentYear - birthYear + 1
//실제 나이를 구하기 위한 코드
document.querySelector("#result").innerHTML = "당신의 나이는" + age + "세 입니다."
//document : 현재 웹브라우저의 페이지를 의미하고,
//querySelector()는 'id가 result인 웹 요소(div)를 의미함.
//innerHTML은 대입한 값으로 html문서에 대체하라는 뜻.
}
CSS
body{
text-align: center;
}
.btn {
margin-top: 50px;
font-weight: 400;
color: #fff;
background-color: #007bff;
text-align: center;
vertical-align: center;
border: 1px solid blue;
padding: 5px;
}
.btn:hover { /*마우스 갖다대면 바뀜!*/
color : #fff;
background-color : aquamarine;
border-color: aquamarine;
}
.show{
margin-top: 50px;
padding: 20px 30px;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
}
클릭하면 글자색 바꾸기
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>글자색 바꾸기</title>
<link rel="stylesheet" href="css/text-color.css">
</head>
<body>
<h1 id="heading">안녕 자바스크립트</h1>
<p id="text">위의 텍스트를 클릭해 보세요.</p>
<script src="js/text-color.js"></script> <!-- 위의 요소(h1,p)들이 불려진 후 위치해야함!! 그래서 여기 갖다 붙인거-->!
</body>
</html>
JAVA Script
//heading이라는 변수를 선언하고 h1태그(제목태그)를 저장한 꼴이 됨
var heading = document.querySelector("#heading");
//만약 h1태그를 클릭하면 글자 색깔을 빨간색으로 바꾸라는 함수
heading.onclick = function() {
heading.style.color = "red";
}
CSS
body{
text-align: center;
}
#heading {
color: blue;
}
#text {
color: gray;
font-size: 15px;
}
시간 표시
HTML
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>시간표식</title>
<style>
body {
font-size: 2em; <!--M기준으로 2배-->
text-align: center;
}
</style>
</head>
<body>
<script>
var now = new Date();
var disp = now.toLocaleTimeString();
document.write("현재 시각 : " + disp);
</script>
</body>
</html>