본문 바로가기

JavaScript/[theory]

[변수와 자료형] #1. 변수와 <meta> 태그

728x90
반응형

변수의 개념

자바스크립트에서 변수변하는 값을 저 정할 때 사용하는 임의의 지정 값이다.

변수

변수 선언의 규칙

변수에는 컴퓨터가 구별할 수 있도록 이름을 붙여 줘야 한다. 이를 "변수를 선언한다"라고 표현한다.

변수의 선언 시 규칙은 다음과 같다.

 

1. 변수의 이름은 변수의 기능과 연관되게 짓는다.

2. 여러 단어를 연결한 이름을 낙타 모양으로 만들어 준다.

3. 선언할 수 없는 이름을 기억한다.

 

이러한 변수의 개념은 다른 프로그래밍 언어에서의 설명과 동일하다.

변수의 설명 과정에서 다음의 완성된 프로그램을 이용하도록 한다. 해당 프로그램은 다음 포스팅에서 작성과 설명을 추가적으로 포스팅하도록 하겠다.

<!DOCTYPE html>
<html lang="ko">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title>나이 계산하기</title>
	<link rel="stylesheet" href="css/age.css">
</head>
<body>	
	<button class="btn" onclick="calc()">나이 계산하기</button>
	<div id="result" class="show">(결과 값 표시)</div>
	<script>
		function calc() {
			var currentYear = 2021;
			var birthYear = prompt("태어난 연도를 입력하세요.","YYYY");;
			var age;
			age = currentYear - birthYear + 1;
			document.querySelector("#result").innerHTML = "당신의 나이는 " + age + "세입니다.";
		}
	</script>
</body>
</html>

코드 해석하기: <head>

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title>나이 계산하기</title>
	<link rel="stylesheet" href="css/age.css">
</head>

<meta> 태그의 charset 속성

<meta charset="UTF-8">

<meta> 태그의 charset 속성은 해당 HTML 문서의 문자 인코딩 방식을 명시한다.

각각의 HTML 요소의 lang 속성을 사용하면, <meta> 요소의 charset 속성으로 명시한 문자 인코딩 방식을 재정의할 수 있다.

 

<meta charset="문자셋">

속성 값

문자셋 TML 문서의 문자 인코딩 방식을 명시함. 
유니코드(Unicode)를 위한 문자셋인 UTF-8이 가장 많이 사용됨.

<meta> 태그의 name 속성

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta> 태그의 name 속성은 메타데 이터를 위한 이름을 명시한다.

 

만약 name 속성이 명시되었다면, 반드시 content 속성도 함께 명시되어야만 한다.

HTML5에서는 <meta> 요소를 통해 웹 페이지에서 사용자가 볼 수 있는 영역인 뷰포트(viewport)를 제어할 수 있도록 name 속성에 viewport 속성 값을 제공하고 있다.

<meta name="애플리케이션 이름|author|description|generator|keywords|viewport">

속성값

viewport 웹 페이지에서 사용자가 볼 수 있는 영역인 뷰포트(viewport)를 제어한다.

<meta> 요소의 viewport는 브라우저에게 해당 페이지의 면적과 비율 등을 어떻게 제어할 지에 대한 지침을 제공한다.
"width=device-width" 부분은 기기에 따라 달라지는 장치의 화면 너비에 맞게 웹 페이지의 너비를 설정
"initial-scale=1.0" 부분은 브라우저에 의해 웹 페이지가 처음으로 로드될 때 초기 확대/축소 레벨을 설정합니다.

부가적 속성값

애플리케이션 이름 웹 페이지가 나타내는 웹 애플리케이션의 이름을 명시함.
author 문서의 저자를 명시함.
ex) <meta name="author" content="TCPSchool">
description 웹 페이지에 대한 설명을 명시함. 검색엔진은 검색 결과에 이러한 설명을 함께 표시할 수 있습니다.
ex) <meta name="description" content="HTML meta tag page">
generator 문서를 생성하는데 사용되는 소프트웨어 패키지(software package) 중 하나를 명시함.
(수동으로 생성된 페이지에는 사용하지 않음)
ex) <meta name="generator" content="Frontweaver 8.2">
keywords 검색 엔진을 위해 웹 페이지와 관련된 콤마(,)로 구분한 키워드 목록을 명시함.
ex) <meta name="keyword" content="HTML, meta, tag, element, reference">

<meta> 태그의 http-equiv 속성

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<meta> 태그의 http-equiv 속성은 content 속성에 명시된 값에 대한 HTTP 헤더를 제공한다.

 

http-equiv 속성은 HTTP 응답 헤더를 시뮬레이션할 때 사용할 수 있다.

만약 http-equiv 속성이 명시되어 있다면, 반드시 content 속성도 함께 명시되어야만 한다.

<meta http-equiv="content-type|default-style|refresh">

속성값

content-type 해당 문서의 문자 인코딩 방식을 명시함.

ex) <meta http-equiv="content-type" content="text/html; charset=UTF-8">
default-type 우선적으로 적용할 스타일시트를 명시함.

content 속성값은 동일한 문서에 존재하는 link 요소의 title 속성값과 일치하거나, 동일한 문서에 존재하는 style 요소의 title 속성값과 일치해야만 합니다.

ex) <meta http-equiv="default-style" content="preferred stylesheet">
refresh 해당 문서를 새로고침(refresh)할 시간 간격을 명시함.
refresh 속성값은 사용자로부터 페이지에 대한 제어를 빼앗아오기 때문에 주의를 기울여 사용해야 합니다.

ex) <meta http-equiv="refresh" content="30">

<meta> 태그의 link rel 속성

<link rel="stylesheet" href="css/age.css">

<link> 태그의 rel 속성은 현재 문서와 외부 리소스 사이의 연관 관계를 명시합니다.

rel 속성은 <link> 요소에 반드시 명시되어야 하는 필수 속성입니다.

<link rel="속성 값">

속성 값

alternate 프린트 페이지나 번역된 페이지와 같이 해당 문서의 대체 버전에 대한 링크를 제공함.
author 해당 문서의 저자에 대한 링크를 제공함.
dns-prefetch 브라우저가 대상 리소스의 원본에 대해 DNS 확인(DNS resolution) 작업을 미리 수행하도록 명시함.
help 도움말 문서에 대한 링크를 제공함.
icon 사용자 인터페이스에서 해당 문서를 나타낼 리소스(일반적으로 아이콘)를 불러옴.
license 해당 문서의 저작권 정보에 대한 링크를 제공함.
next 연관된 문서들의 모음 중 다음 문서에 대한 링크를 제공함.
pingback 현재 문서에 대한 핑백(pingback)을 처리하는 핑백 서버의 주소를 제공함.
preconnect 브라우저가 대상 리소스의 원본에 미리 연결하도록 명시함.
prefetch 사용자가 요청할 가능성이 있으므로, 브라우저가 대상 리소스를 미리 가져와 캐시(cache)하도록 명시함.
preload 브라우저가 as 속성과 해당 대상과 관련된 우선순위에 따라 현재 탐색에 사용할 대상 리소스를 미리 가져와 캐시하도록 명시함.
prev 연관된 문서들의 모음 중 이전 문서에 대한 링크를 제공함.
search 현재 문서 및 관련 페이지를 검색하는데 사용할 수 있는 리소스에 대한 링크를 제공함.
stylesheet 스타일 시트(stylesheet)로 사용할 외부 리소스를 불러옴.

코드 해석하기: <body>

<body>	
	<button class="btn" onclick="calc()">나이 계산하기</button>
	<div id="result" class="show">(결과 값 표시)</div>
	<script>
		function calc() {
			var currentYear = 2021;
			var birthYear = prompt("태어난 연도를 입력하세요.","YYYY");;
			var age;
			age = currentYear - birthYear + 1;
			document.querySelector("#result").innerHTML = "당신의 나이는 " + age + "세입니다.";
		}
	</script>
</body>

 

<button> 요소

<button class="btn" onclick="calc()">나이 계산하기</button>

HTML <button> 요소는 클릭 가능한 버튼을 나타낸다. 이때 , class 속성 정의를 이용하여 btn이라는 클래스를 선언하고 해당 클래스를 클릭하게 되면 <script> 태그의 calc 함수가 실행된다. 이는 추후 포스팅에서 다룬다.

 

버튼은 양식 내부는 물론 간단한 표준 버튼 기능이 필요한 곳이라면 문서 어디에나 배치할 수 있다. 기본값의 HTML 버튼은 사용자 에이전트의 호스트 플랫폼과 비슷한 디자인을 따라가지만, 외형은 CSS로 변경할 수 있다.

 

이때  calc()는 괄호 안의 식을 계산한 결과를 속성 값으로 사용하게 해주는 함수이며, <script> 태그에서 값을 계산한다.

<script>
    function calc() {
        var currentYear = 2021;
        var birthYear = prompt("태어난 연도를 입력하세요.","YYYY");;
        var age;
        age = currentYear - birthYear + 1;
        document.querySelector("#result").innerHTML = "당신의 나이는 " + age + "세입니다.";
    }
</script>
코드의 해석에서 각 함수와 지정자의 설명은 다음 링크의 포스팅을 참조했다.

http://www.tcpschool.com/html-tag-attrs/link-rel

728x90
반응형
댓글