SlideShare a Scribd company logo
1 of 24
JavaScript
Chapter2. 기본적인 작성법 익히기
CONTENTS
JavaScript의
기본적인 표기
변수
데이터형
연산자
제어명령
2-1
2-2
2-3
2-4
2-5
2-1JavaScript의 기본적인표기
<html>
<head>
<meta http-equiv="content-Type" content="text/html; charset=UTF-8"/>
<title>Hello World!</title>
</head>
<body>
<pre>
<script type="text/javascript">
<!--
document.writeln('Hello World!');
//-->
</script>
<noscript>JavaScript를 이용할 수 없습니다.</noscript>
</pre>
</body>
</html>
JavaScript를 HTML 파일에 집어넣는 <script> 태그
JavaScript를 HTML 파일에 집어넣기 - <script> 태그
JavaScript를 HTML 파일에 집어넣기 - <script> 태그
스크립트 코드 외부화
<script type="text/javascript“ src=“파일명” [charset=“문자코드”]>
</script>
자바스크립트 코드는 별도의 외부파일로도 정의가 가능하다.
helloEx.html
…
<script type="text/javascript“ src=“helloEx.js”></script>
…
helloEx.js
document.writeln('Hello World!');
2-1JavaScript의 기본적인표기
JavaScript를 HTML 파일에 집어넣기 - <script> 태그
<script> 태그를 기술하는 장소
(1) <body>태그 아래 임의의 위치
실행결과를 문서 내에 포함 시키고 싶을 때
(2) </body>태그 직전에
함수를 정의하고 싶을 때
(3) <head>태그 아래
<body>밑에서 직접 호출하기 위한 함수를 정의하고 싶을 때
(2)와 (3)의 패턴이 기본이며, (1)은 실제 어플리케이션에서 사용하는 일은 거의 없다.
2-1JavaScript의 기본적인표기
JavaScript를 HTML 파일에 집어넣기 - <script> 태그
Anchor 태그에 스크립트를 집어넣기
<a href=“JavaScript : 스크립트코드”>링크 텍스트</a>
Anchor의 href 속성에 JavaScript : ~ 의 형식으로 마치 URL인 것처럼 JavaScript를 집어넣을 수 있다.
ex)링크 클릭 시 다이얼로그 상자를 표시하고 싶은 경우
<a href="JavaScript : window.alert('Hello World!');">다이얼로그 상자 표시</a>
2-1JavaScript의 기본적인표기
(1) 문장의 맨 끝에 세미콜론( ; )을 붙인다
(2) 문장의 도중에 공백이나 개행, 탭을 포함할 수 있다
(3) 대문자/소문자가 엄밀히 구별된다
문장(Statement)의 규칙
한 행으로 끝나는 주석을 기술할 경우 → //
복수 행에 걸친 주석을 기술할 경우 → /* … */
주석 넣기
2-1JavaScript의 기본적인표기
변수 선언하기
var명령
var 변수명; 또는 var 변수명 = 값;
식별자의 명명규칙
(1) 첫 번째 문자는 영문자/ _ / $ 중 하나이다
(2) 두 번째 문자 이후에는 첫 번째에서 사용할 수 있는 문자 또는 숫자여야 한다
(3) 변수명에 포함된 영문자의 대문자/소문자는 구별된다
(4) Javascript에서 의미를 갖는 예약어가 아니어야 한다 (break, case, else, continue, if, … )
2-2변수
기본형과 참조형의 두 가지로 나누어져 있다
기본형 – 수치형(number), 문자열형(string), 논리형(boolean), 특수형(null/undefined)
참조형 – 배열(array), 객체(object), 함수(function)
기본형의 변수에는 값 그 자체가 직접 보관된다
참조형의 변수는 값을 실제로 보관하고 있는 메모리의 어드레스를 보관한다
2-3데이터형
리터럴
리터럴 : 데이터형에 보관되는 값 그 자체, 또는 값의 표현방법
숫자 리터럴(number) – 정수 리터럴, 부동소수점 리터럴
문자열 리터럴(string) – 작은따옴표, 큰따옴표로 감싸서 표현한다
이스케이프 시퀀스 : 특수한 의미를 가진 문자를 [\+문자]의 형식으로 표현한다
2-3데이터형
\b 백 스페이스 \f 새로운 페이지
\n 개행 \r 복귀
\t 탭 문자 \\ \
\’ 작은따옴표 \” 큰따옴표
리터럴
배열 리터럴(array) – 데이터의 집합을 말한다
하나의 변수에 대해 복수의 값을 보관할 수 있다
ex) var ary = [ ‘JavaScript’ , ‘Ajax’ , ‘ASP.NET’ ] ;
document.writeln(ary[0]); // JavaScript
배열은 내부에 별도의 배열을 가질 수도 있다
ex) var ary = [ ‘JavaScript’ , [ ‘jQuery’ , ‘prototype.js’ ] , ‘ASP.NET’ ] ;
document.writeln(ary[1][0]); // jQuery
객체 리터럴(object) – 각 요소에 문자열 키로 접근 가능한 배열을 말한다(해시, 연상배열)
객체 내의 개별 데이터는 ‘프로퍼티’라고 불린다
ex) var obj = { x : 1, y : 2, z : 3 };
document.writeln(obj . x ); //1
document.writeln(obj [ ‘x’ ]); //1
2-3데이터형
리터럴
함수 리터럴(function) – 입력 값이 주어짐에 따라 미리 정해진 처리를 행하여 결과를 반환해주는 구조
미정의 값(undefined) – 어떤 변수가 선언완료 상태에서 값을 부여하지 않은 경우
미정의 된 프로퍼티를 참조하려고 하는 경우
2-3데이터형
연산자의 기본
연산자(Operator)
x = a + b ;
연산자에 의해 처리되는 변수/리터럴, 피연산자(Operand)
연산자란 부여된 변수/리터럴에 대하여 미리 결정된 어떠한 처리를 행하기 위한 기호이다
2-4연산자
산술 연산자
2-4연산자
가산 연산자(+) – 오퍼랜드가 둘 다 수치인 경우는 덧셈, 한쪽이 문자열인 경우는 연결 연산자가 된다
ex) document.writeln( ‘10’ + 1 ); //101
증가 연산자(++)와 감소 연산자(--) – 오퍼랜드에 대해서 1을 가산/감산한다
오퍼랜드의 전후 어느 쪽에 놓는가에 따라 결과가 다르게 된다
소수점을 포함하는 계산 – 값을 일단 정수로 바꾼 뒤에 연산을 행하고 그 결과를 다시 소수로 바꾼다
비교 연산자
좌변/우변의 값을 비교하여 그 결과를 true/false로 반환한다 (==, !=, <, <=, ===, ?:, …)
조건 연산자( ?: ) – 「조건식 ? 식1 : 식2」 조건식이 true인 경우는 식1, false인 경우는 식2를 취한다
대입 연산자
지정된 변수에 값을 대입하는 연산자
복합 대입 연산자 : 좌변에 우변의 값을 연산한 결과를 대입한다
ex) x+=y ↔ x=x+y
기본형과 참조형에 따른 대입의 차이
: 기본형은 값 자체를 전달하므로 원래 변수의 값을 변경해도 복사한 변수에 영향을 미치지 않지만
참조형은 값을 보관하는 주소를 전달하므로 한쪽의 변경이 다른 쪽에도 영향을 준다
ex) var x=1;
var y=x;
var x=2;
document.writeln(y); //1
var ary1=[0,1,2];
var ary2=ary1;
ary1[0]=5;
document.writeln(ary2); //5,1,2
2-4연산자
논리 연산자
2-4연산자
복수의 조건식을 논리적으로 결합하여 결과를 true/false로 반환한다 (&&, ||, ! )
공백문자열, 숫자 0 , NaN(Not a Number), null, undefined 등의 값 → false
그 외 연산자
delete – 객체의 프로퍼티나 배열의 요소를 삭제한다
삭제에 성공했을 경우 true, 실패한 경우에는 false를 되돌린다.
typeof – 오퍼랜드의 데이터형을 반환한다
프로그램의 세 가지 구조
2-5제어명령
1) 기술된 순서대로 처리를 행하는 순차 구조
2) 조건에 따라 처리를 분기하는 선택 구조
3) 특정의 처리를 반복 실행하는 반복 구조
단순 분기를 기술하기 – if 명령
2-5제어명령
주어진 조건식이 true/false 어느 쪽인지에 따라서 대응하는 명령을 실행한다
var x=15;
if(x>=10){
document.writeln('변수 x는 10 이상이다.');
}else if(x>=5){
document.writeln('변수 x는 5 이상이다.');
}else{
document.writeln('변수 x는 5 미만이다.');
} // 변수 x는 10 이상이다.
복수의 조건이 들어맞는 경우에도 처음 한 개의 블록만 실행된다
내부에서 if문을 중첩해서 보다 복잡한 조건분기를 표현할 수 있다
블록 내의 명령이 한 줄인 경우 중괄호는 생략이 가능하다
여러 분기를 기술하기 – switch 명령
2-5제어명령
선두의 식이 우선 평가되고 일치하는 case 블록을 실행한다
일치하는 case 블록이 없을 경우 마지막의 default 블록을 호출한다
var rank='B';
switch(rank){
case 'A' : document.writeln('A랭크이다.');
break;
case 'B' : document.writeln('B랭크이다.');
break;
case 'C' : document.writeln('C랭크이다.');
break;
default : document.writeln('랭크이외다.');
} //B랭크이다.
switch명령에서는 자동으로 블록에서 빠져 나오지 못하므로 break 명령을 이용한다
조건식에 따라 루프 제어하기 – while, do while 명령
2-5제어명령
미리 부여된 조건식이 true인 동안은 루프를 반복한다
do…while 명령의 끝부분에는 문장의 종료를 나타내는 ; 이 필요하다
var x=10;
while(x<10){
document.writeln('x의 값은 ' + x);
x++;
}
var x=10;
do{
document.writeln('x의 값은 ' + x);
x++;
}while(x<10);
전치판단, 조건에 따라서 루프를
한번도 실행하지 않는다
후치판단, 조건에 상관없이
최소 1회는 루프를 실행한다
지정횟수만큼만 루프를 처리하기 – for 명령
2-5제어명령
미리 지정된 횟수만큼만 반복 처리를 행한다
괄호 내의 초기화식, 루프 계속 조건식, 증감식의 세가지 식으로 루프를 제어한다
for(var i=1,j=1; i<5; i++,j++){
document.writeln(‘ i * j 의 값은 ' + i * j );
}
배열 내의 요소를 순서대로 처리하기 – for in 명령
2-5제어명령
지정된 배열/연상배열이나 객체 내의 요소/멤버에 대해 선두부터 순서대로 반복 처리를 행한다
var member =['A','B','C'];
for(var i in member){
document.writeln('이름은 ' + member[i]);
}
var book=new Object();
book.title='javascript';
book.price='3000';
for(var k in book){
document.writeln(k + '는 ' + book[k]);
}
For…in루프를 이용하는 것은 연상배열, 객체의 키를 조회할 경우에 한하며, 일반 배열을 조회할 경우는
원칙적으로 for루프를 이용하도록 한다
루프를 도중에 skip/중단하기 – break/ continue 명령
2-5제어명령
특정조건을 만족하는 경우에 루프를 강제적으로 중단하고 싶을 때 – break 명령
현재의 루프만을 건너뛰고 다음 루프를 계속해서 실행하고 싶을 때 – continue 명령
var result = 0;
for(var i=0; i<100; i++){
if(i%2==0){continue;}
result +=i;
}
document.writeln('합계 = '+result);
중첩된 루프에서 break, continue 명령을 사용한 경우에는 가장 안쪽의 루프를 빠져 나온다
빠져 나오고자 하는 루프의 선두에 레이블을 지정하면 레이블이 부여된 루프를 빠져 나올 수 있다
예외 처리 – try, catch, finally 명령
2-5제어명령
try {
예외가 발생할지 모르는 처리
}
catch(e) {
예외가 발생했을 경우 실행되는 처리
}
finally {
예외의 유무에 상관없이 실행하는 처리
}
예외는 직접 발생시키는 것도 가능하다 – throw 명령
throw new Error (에러 메시지)
지정된 예외를 발생시켜 처리를 catch 블록에 인계한다

More Related Content

What's hot

PHP 함수와 제어구조
PHP 함수와 제어구조PHP 함수와 제어구조
PHP 함수와 제어구조Yoonwhan Lee
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리ETRIBE_STG
 
RPG Maker와 Ruby로 코딩 시작하기 Day 2
RPG Maker와 Ruby로 코딩 시작하기 Day 2RPG Maker와 Ruby로 코딩 시작하기 Day 2
RPG Maker와 Ruby로 코딩 시작하기 Day 2Sunwoo Park
 
자바스크립트 함수
자바스크립트 함수자바스크립트 함수
자바스크립트 함수유진 변
 
Reflect package 사용하기
Reflect package 사용하기Reflect package 사용하기
Reflect package 사용하기Yong Joon Moon
 
Javascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operatorJavascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operatorYoung-Beom Rhee
 
비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6민태 김
 
PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지Yoonwhan Lee
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdfHyosang Hong
 
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scopeJavascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scopeYoung-Beom Rhee
 
Lua 문법 -함수
Lua 문법 -함수Lua 문법 -함수
Lua 문법 -함수Jaehoon Lee
 
JPA Study - 1주차(SLIPP)
JPA Study - 1주차(SLIPP)JPA Study - 1주차(SLIPP)
JPA Study - 1주차(SLIPP)Jeong-gyu Kim
 
파이썬 sqlite 이해하기
파이썬 sqlite 이해하기파이썬 sqlite 이해하기
파이썬 sqlite 이해하기Yong Joon Moon
 
[Swift] Operator
[Swift] Operator[Swift] Operator
[Swift] OperatorBill Kim
 
C# 고급 문법 part 1
C# 고급 문법 part 1C# 고급 문법 part 1
C# 고급 문법 part 1준영 박
 

What's hot (20)

PHP 함수와 제어구조
PHP 함수와 제어구조PHP 함수와 제어구조
PHP 함수와 제어구조
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
 
PHP 기초 문법
PHP 기초 문법PHP 기초 문법
PHP 기초 문법
 
php 시작하기
php 시작하기php 시작하기
php 시작하기
 
RPG Maker와 Ruby로 코딩 시작하기 Day 2
RPG Maker와 Ruby로 코딩 시작하기 Day 2RPG Maker와 Ruby로 코딩 시작하기 Day 2
RPG Maker와 Ruby로 코딩 시작하기 Day 2
 
자바스크립트 함수
자바스크립트 함수자바스크립트 함수
자바스크립트 함수
 
Reflect package 사용하기
Reflect package 사용하기Reflect package 사용하기
Reflect package 사용하기
 
Lua 문법
Lua 문법Lua 문법
Lua 문법
 
Javascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operatorJavascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operator
 
비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6
 
PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdf
 
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scopeJavascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
 
Lua 문법 -함수
Lua 문법 -함수Lua 문법 -함수
Lua 문법 -함수
 
PHP 사용하기
PHP 사용하기PHP 사용하기
PHP 사용하기
 
Perl Script
Perl ScriptPerl Script
Perl Script
 
JPA Study - 1주차(SLIPP)
JPA Study - 1주차(SLIPP)JPA Study - 1주차(SLIPP)
JPA Study - 1주차(SLIPP)
 
파이썬 sqlite 이해하기
파이썬 sqlite 이해하기파이썬 sqlite 이해하기
파이썬 sqlite 이해하기
 
[Swift] Operator
[Swift] Operator[Swift] Operator
[Swift] Operator
 
C# 고급 문법 part 1
C# 고급 문법 part 1C# 고급 문법 part 1
C# 고급 문법 part 1
 

Similar to 자바스크립트

파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법SeongHyun Ahn
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304Yong Joon Moon
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)Sung-hoon Ma
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130Yong Joon Moon
 
Javascript 1
Javascript 1Javascript 1
Javascript 1swmin
 
Java_02 변수자료형
Java_02 변수자료형Java_02 변수자료형
Java_02 변수자료형Hong Hyo Sang
 
Java 변수자료형
Java 변수자료형Java 변수자료형
Java 변수자료형Hyosang Hong
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오Taeoh Kim
 
Perl Script Document
Perl Script DocumentPerl Script Document
Perl Script Document오석 한
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차Han Sung Kim
 
외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements민태 김
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summaryHoChul Shin
 
Javascript - Array
Javascript - ArrayJavascript - Array
Javascript - Arraywonmin lee
 

Similar to 자바스크립트 (20)

파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
Javascript기초
Javascript기초Javascript기초
Javascript기초
 
javascript01
javascript01javascript01
javascript01
 
06장 함수
06장 함수06장 함수
06장 함수
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
Javascript
JavascriptJavascript
Javascript
 
R 시작해보기
R 시작해보기R 시작해보기
R 시작해보기
 
Java_02 변수자료형
Java_02 변수자료형Java_02 변수자료형
Java_02 변수자료형
 
Java 변수자료형
Java 변수자료형Java 변수자료형
Java 변수자료형
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
 
Perl Script Document
Perl Script DocumentPerl Script Document
Perl Script Document
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summary
 
6 function
6 function6 function
6 function
 
Javascript - Array
Javascript - ArrayJavascript - Array
Javascript - Array
 

자바스크립트

  • 3. 2-1JavaScript의 기본적인표기 <html> <head> <meta http-equiv="content-Type" content="text/html; charset=UTF-8"/> <title>Hello World!</title> </head> <body> <pre> <script type="text/javascript"> <!-- document.writeln('Hello World!'); //--> </script> <noscript>JavaScript를 이용할 수 없습니다.</noscript> </pre> </body> </html> JavaScript를 HTML 파일에 집어넣는 <script> 태그 JavaScript를 HTML 파일에 집어넣기 - <script> 태그
  • 4. JavaScript를 HTML 파일에 집어넣기 - <script> 태그 스크립트 코드 외부화 <script type="text/javascript“ src=“파일명” [charset=“문자코드”]> </script> 자바스크립트 코드는 별도의 외부파일로도 정의가 가능하다. helloEx.html … <script type="text/javascript“ src=“helloEx.js”></script> … helloEx.js document.writeln('Hello World!'); 2-1JavaScript의 기본적인표기
  • 5. JavaScript를 HTML 파일에 집어넣기 - <script> 태그 <script> 태그를 기술하는 장소 (1) <body>태그 아래 임의의 위치 실행결과를 문서 내에 포함 시키고 싶을 때 (2) </body>태그 직전에 함수를 정의하고 싶을 때 (3) <head>태그 아래 <body>밑에서 직접 호출하기 위한 함수를 정의하고 싶을 때 (2)와 (3)의 패턴이 기본이며, (1)은 실제 어플리케이션에서 사용하는 일은 거의 없다. 2-1JavaScript의 기본적인표기
  • 6. JavaScript를 HTML 파일에 집어넣기 - <script> 태그 Anchor 태그에 스크립트를 집어넣기 <a href=“JavaScript : 스크립트코드”>링크 텍스트</a> Anchor의 href 속성에 JavaScript : ~ 의 형식으로 마치 URL인 것처럼 JavaScript를 집어넣을 수 있다. ex)링크 클릭 시 다이얼로그 상자를 표시하고 싶은 경우 <a href="JavaScript : window.alert('Hello World!');">다이얼로그 상자 표시</a> 2-1JavaScript의 기본적인표기
  • 7. (1) 문장의 맨 끝에 세미콜론( ; )을 붙인다 (2) 문장의 도중에 공백이나 개행, 탭을 포함할 수 있다 (3) 대문자/소문자가 엄밀히 구별된다 문장(Statement)의 규칙 한 행으로 끝나는 주석을 기술할 경우 → // 복수 행에 걸친 주석을 기술할 경우 → /* … */ 주석 넣기 2-1JavaScript의 기본적인표기
  • 8. 변수 선언하기 var명령 var 변수명; 또는 var 변수명 = 값; 식별자의 명명규칙 (1) 첫 번째 문자는 영문자/ _ / $ 중 하나이다 (2) 두 번째 문자 이후에는 첫 번째에서 사용할 수 있는 문자 또는 숫자여야 한다 (3) 변수명에 포함된 영문자의 대문자/소문자는 구별된다 (4) Javascript에서 의미를 갖는 예약어가 아니어야 한다 (break, case, else, continue, if, … ) 2-2변수
  • 9. 기본형과 참조형의 두 가지로 나누어져 있다 기본형 – 수치형(number), 문자열형(string), 논리형(boolean), 특수형(null/undefined) 참조형 – 배열(array), 객체(object), 함수(function) 기본형의 변수에는 값 그 자체가 직접 보관된다 참조형의 변수는 값을 실제로 보관하고 있는 메모리의 어드레스를 보관한다 2-3데이터형
  • 10. 리터럴 리터럴 : 데이터형에 보관되는 값 그 자체, 또는 값의 표현방법 숫자 리터럴(number) – 정수 리터럴, 부동소수점 리터럴 문자열 리터럴(string) – 작은따옴표, 큰따옴표로 감싸서 표현한다 이스케이프 시퀀스 : 특수한 의미를 가진 문자를 [\+문자]의 형식으로 표현한다 2-3데이터형 \b 백 스페이스 \f 새로운 페이지 \n 개행 \r 복귀 \t 탭 문자 \\ \ \’ 작은따옴표 \” 큰따옴표
  • 11. 리터럴 배열 리터럴(array) – 데이터의 집합을 말한다 하나의 변수에 대해 복수의 값을 보관할 수 있다 ex) var ary = [ ‘JavaScript’ , ‘Ajax’ , ‘ASP.NET’ ] ; document.writeln(ary[0]); // JavaScript 배열은 내부에 별도의 배열을 가질 수도 있다 ex) var ary = [ ‘JavaScript’ , [ ‘jQuery’ , ‘prototype.js’ ] , ‘ASP.NET’ ] ; document.writeln(ary[1][0]); // jQuery 객체 리터럴(object) – 각 요소에 문자열 키로 접근 가능한 배열을 말한다(해시, 연상배열) 객체 내의 개별 데이터는 ‘프로퍼티’라고 불린다 ex) var obj = { x : 1, y : 2, z : 3 }; document.writeln(obj . x ); //1 document.writeln(obj [ ‘x’ ]); //1 2-3데이터형
  • 12. 리터럴 함수 리터럴(function) – 입력 값이 주어짐에 따라 미리 정해진 처리를 행하여 결과를 반환해주는 구조 미정의 값(undefined) – 어떤 변수가 선언완료 상태에서 값을 부여하지 않은 경우 미정의 된 프로퍼티를 참조하려고 하는 경우 2-3데이터형
  • 13. 연산자의 기본 연산자(Operator) x = a + b ; 연산자에 의해 처리되는 변수/리터럴, 피연산자(Operand) 연산자란 부여된 변수/리터럴에 대하여 미리 결정된 어떠한 처리를 행하기 위한 기호이다 2-4연산자
  • 14. 산술 연산자 2-4연산자 가산 연산자(+) – 오퍼랜드가 둘 다 수치인 경우는 덧셈, 한쪽이 문자열인 경우는 연결 연산자가 된다 ex) document.writeln( ‘10’ + 1 ); //101 증가 연산자(++)와 감소 연산자(--) – 오퍼랜드에 대해서 1을 가산/감산한다 오퍼랜드의 전후 어느 쪽에 놓는가에 따라 결과가 다르게 된다 소수점을 포함하는 계산 – 값을 일단 정수로 바꾼 뒤에 연산을 행하고 그 결과를 다시 소수로 바꾼다 비교 연산자 좌변/우변의 값을 비교하여 그 결과를 true/false로 반환한다 (==, !=, <, <=, ===, ?:, …) 조건 연산자( ?: ) – 「조건식 ? 식1 : 식2」 조건식이 true인 경우는 식1, false인 경우는 식2를 취한다
  • 15. 대입 연산자 지정된 변수에 값을 대입하는 연산자 복합 대입 연산자 : 좌변에 우변의 값을 연산한 결과를 대입한다 ex) x+=y ↔ x=x+y 기본형과 참조형에 따른 대입의 차이 : 기본형은 값 자체를 전달하므로 원래 변수의 값을 변경해도 복사한 변수에 영향을 미치지 않지만 참조형은 값을 보관하는 주소를 전달하므로 한쪽의 변경이 다른 쪽에도 영향을 준다 ex) var x=1; var y=x; var x=2; document.writeln(y); //1 var ary1=[0,1,2]; var ary2=ary1; ary1[0]=5; document.writeln(ary2); //5,1,2 2-4연산자
  • 16. 논리 연산자 2-4연산자 복수의 조건식을 논리적으로 결합하여 결과를 true/false로 반환한다 (&&, ||, ! ) 공백문자열, 숫자 0 , NaN(Not a Number), null, undefined 등의 값 → false 그 외 연산자 delete – 객체의 프로퍼티나 배열의 요소를 삭제한다 삭제에 성공했을 경우 true, 실패한 경우에는 false를 되돌린다. typeof – 오퍼랜드의 데이터형을 반환한다
  • 17. 프로그램의 세 가지 구조 2-5제어명령 1) 기술된 순서대로 처리를 행하는 순차 구조 2) 조건에 따라 처리를 분기하는 선택 구조 3) 특정의 처리를 반복 실행하는 반복 구조
  • 18. 단순 분기를 기술하기 – if 명령 2-5제어명령 주어진 조건식이 true/false 어느 쪽인지에 따라서 대응하는 명령을 실행한다 var x=15; if(x>=10){ document.writeln('변수 x는 10 이상이다.'); }else if(x>=5){ document.writeln('변수 x는 5 이상이다.'); }else{ document.writeln('변수 x는 5 미만이다.'); } // 변수 x는 10 이상이다. 복수의 조건이 들어맞는 경우에도 처음 한 개의 블록만 실행된다 내부에서 if문을 중첩해서 보다 복잡한 조건분기를 표현할 수 있다 블록 내의 명령이 한 줄인 경우 중괄호는 생략이 가능하다
  • 19. 여러 분기를 기술하기 – switch 명령 2-5제어명령 선두의 식이 우선 평가되고 일치하는 case 블록을 실행한다 일치하는 case 블록이 없을 경우 마지막의 default 블록을 호출한다 var rank='B'; switch(rank){ case 'A' : document.writeln('A랭크이다.'); break; case 'B' : document.writeln('B랭크이다.'); break; case 'C' : document.writeln('C랭크이다.'); break; default : document.writeln('랭크이외다.'); } //B랭크이다. switch명령에서는 자동으로 블록에서 빠져 나오지 못하므로 break 명령을 이용한다
  • 20. 조건식에 따라 루프 제어하기 – while, do while 명령 2-5제어명령 미리 부여된 조건식이 true인 동안은 루프를 반복한다 do…while 명령의 끝부분에는 문장의 종료를 나타내는 ; 이 필요하다 var x=10; while(x<10){ document.writeln('x의 값은 ' + x); x++; } var x=10; do{ document.writeln('x의 값은 ' + x); x++; }while(x<10); 전치판단, 조건에 따라서 루프를 한번도 실행하지 않는다 후치판단, 조건에 상관없이 최소 1회는 루프를 실행한다
  • 21. 지정횟수만큼만 루프를 처리하기 – for 명령 2-5제어명령 미리 지정된 횟수만큼만 반복 처리를 행한다 괄호 내의 초기화식, 루프 계속 조건식, 증감식의 세가지 식으로 루프를 제어한다 for(var i=1,j=1; i<5; i++,j++){ document.writeln(‘ i * j 의 값은 ' + i * j ); }
  • 22. 배열 내의 요소를 순서대로 처리하기 – for in 명령 2-5제어명령 지정된 배열/연상배열이나 객체 내의 요소/멤버에 대해 선두부터 순서대로 반복 처리를 행한다 var member =['A','B','C']; for(var i in member){ document.writeln('이름은 ' + member[i]); } var book=new Object(); book.title='javascript'; book.price='3000'; for(var k in book){ document.writeln(k + '는 ' + book[k]); } For…in루프를 이용하는 것은 연상배열, 객체의 키를 조회할 경우에 한하며, 일반 배열을 조회할 경우는 원칙적으로 for루프를 이용하도록 한다
  • 23. 루프를 도중에 skip/중단하기 – break/ continue 명령 2-5제어명령 특정조건을 만족하는 경우에 루프를 강제적으로 중단하고 싶을 때 – break 명령 현재의 루프만을 건너뛰고 다음 루프를 계속해서 실행하고 싶을 때 – continue 명령 var result = 0; for(var i=0; i<100; i++){ if(i%2==0){continue;} result +=i; } document.writeln('합계 = '+result); 중첩된 루프에서 break, continue 명령을 사용한 경우에는 가장 안쪽의 루프를 빠져 나온다 빠져 나오고자 하는 루프의 선두에 레이블을 지정하면 레이블이 부여된 루프를 빠져 나올 수 있다
  • 24. 예외 처리 – try, catch, finally 명령 2-5제어명령 try { 예외가 발생할지 모르는 처리 } catch(e) { 예외가 발생했을 경우 실행되는 처리 } finally { 예외의 유무에 상관없이 실행하는 처리 } 예외는 직접 발생시키는 것도 가능하다 – throw 명령 throw new Error (에러 메시지) 지정된 예외를 발생시켜 처리를 catch 블록에 인계한다