URL 제어하기


브라우저의 현재 URL 조회


var now_url = location.href;


브라우저의 현재 페이지를 지정된 URL로 이동


location.href = 'URL';


현재 페이지를 새로 고침


//랜덤값과 같이 쓰여 인증번호 새로 받기 할 수 있음.

location.reload();


웹 브라우저 history의 이전 페이지로 이동


history.back();


웹 브라우저 history의 다음 페이지로 이동


history.forward();



웹 브라우저의 정보 조회


웹 브라우저의 이름, 버전정보, 운영체제 정보 등이 포함된 문자열 값.


var agent = navigator.userAgent;


이 값에 특정 단어가 포함되어 있는지 여부를 판단하여 브라우저나 운영체제 종류, 모바일/PC 여부 등을 확인할 수 있다.


var agent = navigator.userAgent;


if (agent.indexOf('검사할 단어') > -1) {

... 처리내용 ...

}


HTML 제어


HTML 요소를 객체로 생성하기



var mytag = document.getElementById("id속성값");


획득한 객체의 내부에 대한 내용 접근


// 내용 적용하기


mytag.innerHTML = "... 적용할 내용 ...";


// 적용된 내용 조회하기


var content = mytag.innerHTML;



획득한 객체 CSS 속성 접근


// 내용 적용하기


mytag.style.css관련_프로퍼티 = "값";


// 적용된 내용 조회하기


var css = mytag.style.css관련_프로퍼티;


css관련_프로퍼티의 이름 규칙은 css에서 -로 표시되던 부분이 없어지고 대문자가 사용됨

ex) [css] background-color --> [js] backgroundColor



획득한 객체 CSS 속성 접근


// 내용 적용하기

mytag.className = "값";


// 적용된 내용 조회하기

var cls = mytag.className;




'Web 관련' 카테고리의 다른 글

Javascript+jQuery+Ajax 8일차  (0) 2019.02.07
Javascript+jQuery+Ajax 7일차  (0) 2019.02.01
Javascript+jQuery+Ajax 5일차  (0) 2019.01.30
Javascript+jQuery+Ajax 4일차  (0) 2019.01.30
Javascript 오답노트  (0) 2019.01.28

Math 내장객체


수학과 관련된 기능을 제공한다.


int abs(int param)


- param의 절대값을 리턴한다.


int max(int a, int b)


- a와 b중에서 큰 값을 리턴한다.


int min(int a, int b)


- a와 b중에서 작은 값을 리턴한다.


int round(Number num)


- num을 소수점 첫째 자리에서 반올림한 결과를 리턴한다.


int floor(Number num)


- 소수점 이하 값을 버린다.


int ceil(Number num)


- 소수점 이하 값을 올린다.



랜덤값 얻기


Math.random() 함수는 0에서 1 사이의 난수를 발생시켜 리턴한다.

실수 형태로 리턴되는 값의 범위를 조절하기 쉽지 않기 때문에 다음과 같이

함수를 정의하여 사용해야 한다.


function random(n1, n2) {

return parseInt(Math.random() * (n2-n1+1)) + n1;

}


Date 내장 객체


객체 생성 방법


// 시스템의 현재 시각

var date1 = new Date();

// 2017년 12월 24일 -> 월은 0부터 카운트된다.

var date2 = new Date(2017, 11, 24);


객체의 메서드


getter : 프로퍼티(멤버변수)의 값을 리턴하기 위한 함수

* 이름이 get변수이름()의 형식을 갖는다.


setter : 파라미터를 통해 프로퍼티의 값을 변경하는 함수

* 이름이 set변수이름()의 형식을 갖는다.


구분 

조회(getter) 

설정(setter) 

 년도

int getFullYear()

void int setFullYear() 

 월

int getMonth()

void int setMonth()

 일

int getDate()

void int setDate() 

 요일

int getDay()

void int setDay()

 시

int getHours()

void int setHours()

 분

int getMinutes()

void int setMinutes()

 초

int getSeconds()

void int setSeconds()

 타임스탬프

int getTime()

void int setTime()


cf) getYear 함수는 1900~1999년까지만 지원되므로 FullYear로 확장된 것


타임스탬프


1970년 1월 1일 이후 지난 시간을 밀리세컨드(1/1000초)로 표현한 값



두 날짜 사이의 차이 구하기


두 개의 timestamp값중 큰 값과 작은 값의 차를 단위의 기준값으로 나눌 경우 날짜 계산이 가능함

* 지난 날짜를 처리하는 경우 : 소수점 아래 버림(Math.floor()함수 사용)

* 다가올 날짜를 계산하는 경우 : 소수점 아래 올림(Math.ceil()함수 사용)


콜백함수


Javascript 함수 파라미터 중에 다른 함수를 전달하는 경우, 파라미터로 전달되는 함수를 콜백함수라고 한다.


function hello() {

... 함수 내용 ...

}


function use_callback(a, b, callback) {

var c = a+b;

callback();

}


// 다른 함수를 파라미터로 전달


use_callback(100, 200, hello);




다음과 같이 축약한 형태로도 사용 가능


function use_callback(a, b, callback) {

var c = a + b;

callback();

}


// 다른 함수를 파라미터로 전달


use_callback(100, 200, function() {

... 함수 내용 ...

])


타이머 처리


지정된 시간(1/1000초 단위)마다 한 번씩 콜백함수 반복 호출


setInterval(function() {

... 구현내용...

}, 시간);


지정된 시간(1/1000초 단위)만큼 딜레이 후 콜백함수를 1회 호출


setTimeout(function() {

... 구현내용 ...

}, 시간);


window 내장 객체


브라우저의 새창 팝업 열기/닫기 기능 제공


a.html을 새 창(새 탭)으로 열기


window.open('a.html');


a.html을 팝업으로 열기


// window.open('URL', '창이름', '옵션');

window.open('a.html', 'mywin', 'width=500, height=300, scrollbars=no, toolbar=no, menubar=no, status=no, location=no');

[이건 외우지는 말고 긁어와서 쓸 수 있는 정도로만]


- 창이름

* 부여하지 않을 경우 매번 새 팝업창이 생성됨

* 부여할 경우 한번 사용한 팝업창을 재사용함

- 옵션

* 창 크기 관련 : width, height

창의 가로,  세로 크기를 정수로 지정

* 창 모양 관련 : scrollbars, toolbar, menubar, status, location

yes/no로 값을 지정

location의 경우 피싱 사이트 방지를 위해서 동작하지 않음[no값에서 주소를 직접적으로 확인 못 하기 때문]


현재 창 닫기


windows.close();

//혹은

self.close();


'Web 관련' 카테고리의 다른 글

Javascript+jQuery+Ajax 7일차  (0) 2019.02.01
Javascript+jQuery+Ajax 6일차  (0) 2019.01.31
Javascript+jQuery+Ajax 4일차  (0) 2019.01.30
Javascript 오답노트  (0) 2019.01.28
Javascript+jQuery+Ajax 3일차  (0) 2019.01.28

함수 정의의 또 다른 방법


함수는 변수와 동급이다. 즉, 변수에 함수가 대입될 수 있다.


function hello() {

alert("안녕하세요");

}


var world = hello;                        // 변수에 함수를 대입한다.

world();                                     // 함수가 대입된 변수는 그 자체가 함수가 된다.


위의 형태는 다음과 같이 축약 표현이 가능하다.


// 대입문이므로 {}뒤에 세미콜론이 존재해야 한다.


var world = function() {

alert("안녕하세요");

};


world();


객체


하나의 변수 안에 또 다른 변수들과 함수들을 기능의 성격에 따라 하나의 그룹으로 묶어서 포함시켜 놓은 형태.


- 객체는 웹 페이지에 보여지는 모든 것이 될 수 있다.

* html 태그가 JS에서는 객체로 인식될 수 있다. [var tag = document.getElementById("id값"); tag.innerHTML = "~~";]

* 즉, HTML 태그 안에는 변수와 함수가 내장되어 있다는 의미가 된다.

- 객체 안에 포함된 변수를 프로퍼티 혹은 멤버변수라고 한다.

- 객체 안에 포함된 함수를 메서드라고 한다.

- 메서드 안에서 같은 객체 내의 프로퍼티나 다른 메서드에 접근하기 위해서는 this 키워드를 사용한다.



// 비어있는 임의의 변수 = 객체


var foo = {};


// 프로퍼티 정의

foo.num1 = 100;

foo.num2 = 200;


// 메서드 정의

foo.sum = function() {

return this.num1 + this.num2;

};


// 객체 내의 메서드 호출

var result = foo.sum();        //    300이 리턴된다.



내장객체


웹 페이지 제작에 필요한 기본 기능들이 정의되어 있는 객체

브라우저에 내장되어 있기 때문에 개발자는 별도의 객체 정의 과정을 생략하고

내장객체에 포함된 프로퍼티와 함수들의 기능을 파악하여 활용할 수 있다.


String


문자열 데이터는 그 자체가 하나의 객체가 된다.


var name = "Javascript";

var word_count = name.length;


- length : 문자열의 길이(글자 수)를 조회할 수 있는 프로퍼티


string charAt(int position)


- position 번째의 글자를 리턴한다.


int indexOf(string search [, int position])


- 문자열에서 search가 처음 나타나는 위치를 리턴한다.[0부터 시작]

- position은 검색을 시작할 위치

- search를 찾지 못한 경우 -1을 리턴한다.


int lastIndexOf(string search [, int position])


- 문자열에서 search가 마지막으로 나타나는 위치를 리턴한다.

- 문자열의 탐색은 뒤에서 부터 진행되지만, 검색된 내용의 위치는 처음부터 카운트

- position은 검색을 시작할 위치

- search를 찾지 못한 경우 -1을 리턴한다.


string substring(int start, int end)


- 문자열의 start번째 글짜부터 end의 위치 전까지 잘라낸 값을 리턴한다.


string toUpperCase();


- 문자열에서 영어를 모두 대문자로 변환하여 리턴한다.


string toLowerCase();


- 문자열에서 영어를 모두 소문자로 변환하여 리턴한다.


Array(배열)


같은 종류의 변수를 캐비넷 같은 공간에 그룹화 한 형태


배열의 생성


var data = new Array("a", "b", "c");


// 혹은


var data = ['a', 'b', 'c'];            // <--- 이 방법 권장


배열의 특성


- 생성된 배열은 0부터 순차적으로 증가하는 index값을 갖는다.

* 이 특성때문에 배열은 일반적으로 반복문과 함께 사용된다.

- 데이터의 접근은 index를 통해서 이루어진다.

* ex) 값을 읽기 : var a = data[0];

* ex) 값을 저장하기 : data[1] = 100;


배열의 길이


- 모든 배열은 그 자체가 하나의 객체가 된다.

- 배열 객체가 갖는 프로퍼티 중 length는 배열의 길이(칸 수)를 조회하는 기능을 갖는다.


var date = ['a', 'b', 'c'];

var count = data.length;


배열의 확장


- 배열은 항상 처음부터 데이터를 갖는 상태로 생성할 필요는 없다.

- 데이터가 저장되지 않은 상태의 빈 배열을 생성한 후, 순차적으로 index를 증가시키면서 값을 추가할 수 있다.


// 빈 배열 만들기


var data = [];


// 배열의 확장


data[0] = 100;

data[1] = 200;

data[2] = 300;

// 값이 저장되지 않은 3,4번째 위치는 undefined가 저장됨.

data[5] = 400;


2차 배열


하나의 배열에서 각 원소가 또 다른 배열로 구성된 경우


var data = new Array(

                new Array('a', 'b', 'c'),

                new Array('d', 'e', 'f')

            );


        // 혹은


var data = [['a', 'b', 'c'], ['d', 'e', 'f']];


- 배열의 데이터는 행, 열 형태로 구성된다.


행 : 1차 데이터

열 : 2차 데이터

ex) 위의 예시에서 data[1][2]는 f


- 2중 반복문으로 배열을 탐색할 경우 바깥의 반복문이 행을 처리하고 안쪽의 반복문이 열을 처리한다.



'Web 관련' 카테고리의 다른 글

Javascript+jQuery+Ajax 6일차  (0) 2019.01.31
Javascript+jQuery+Ajax 5일차  (0) 2019.01.30
Javascript 오답노트  (0) 2019.01.28
Javascript+jQuery+Ajax 3일차  (0) 2019.01.28
Javascript+jQuery+Ajax 2일차  (0) 2019.01.28

가장 많은 오류

 

1. 문법 에러(unexpected syntax error) => 괄호, 세미콜론 등 [하다가 CSS에서 콤마로 연결하는 경우도 생김]

## 비슷하게 :을 =으로 적는 경우도 많음

 

2. 아이디값 오타 => 파라미터로 전달된 아이디가 존재하지 않는다면 리턴값은 null

 

null객체는 innerHTML같은 걸 set하지 못하므로 그걸 호출하는 줄에서 오류가 난다.

 

3. 괄호 블럭을 잘못 닫은 경우(HTML에서도 들여쓰기를 제대로 안 하면 div 포함관계가 빈번하게 어그러진다.)

 

4. jquery에서 셀렉터에 #을 안 붙이는 경우

 

5. 출력결과를 위해 =을 연결하다가 +를 써야될 곳에 =을 쓴 경우

 

6. 변수에 !를 쓰면 변수 자체가 비어있을 때라는 뜻(예외사항 처리에 유용) ==> null & "" 체크와 동치

 

※ 따로 처리를 하고 싶다면 ""은 빈값을 입력했을 때, null은 취소를 눌렀을 때로 나눌 수 있다.

 

7. innerHTML은 기본적으로 덮어쓰기가 된다. 누적하고 싶은 경우 +=으로 추가(일종의 할당이라고 보면 될 듯. 그냥 할당은 덮어쓰기 됨)

 

혹은 변수에 할당해놓고 한번에 쓰는 방식도 가능하다.

 

8. Javascript는 무조건 Console 띄워놓고 같이 보면서 해야 됨(문법 에러는 잡을 수 있다)

 

9. json의 value값에 함수를 포함하는 경우 뒤에 comma를 찍지 않고 넘어가는 실수가 있을 수 있다.

 

'Web 관련' 카테고리의 다른 글

Javascript+jQuery+Ajax 5일차  (0) 2019.01.30
Javascript+jQuery+Ajax 4일차  (0) 2019.01.30
Javascript+jQuery+Ajax 3일차  (0) 2019.01.28
Javascript+jQuery+Ajax 2일차  (0) 2019.01.28
Javascript 1일차 요점 정리  (0) 2019.01.25

Javascript 3일차 요점정리


내장함수


자주 사용되어지는 공통 기능들에 대하여 미리 구현되어진 함수. 웹 브라우저에 미리 내장되어 있으므로 개발자는 함수의 정의 없이 함수를 호출하고 적절한 리턴값을 받아 활용할 수 있다.


문자열에 대한 숫자, 수식 변환


Number eval(string)


- 주어진 수식 형태의 문자열을 실제로 계산한 결과값을 리턴한다.


Number Number(string)


- 주어진 숫자 형태의 문자열을 Number타입의  값으로 변환하여 리턴한다. 정수와 실수를 모두 지원한다.


Number parseInt(string)


- 주어진 숫자 형태의 문자열을 Number타입의 값으로 변환하여 리턴한다. 정수만 지원한다. 문자열이 실수 형태인 경우 소수점 아래 부분은 잘라낸다.


참고 : 주어진 문자열을 무조건 실수 형태로만 리턴하는 함수는 parseFloat(string)이다. 예를 들어 파라미터로 "1"이 전달될 경우 1.0이 리턴된다.




NaN (Not a Number)


- Number 형식으로 변환할 수 없는 값을 Number 함수나 parseInt 함수로 변환하려고 한 경우 리턴되는 값

- 전염성이 매우 강해서 한번 NaN으로 결정된 값에는 어떤 수를 연산시키건 결과가 NaN이 된다.


var k = parseInt("hello");    // <-- k = NaN;

var c = k + 100;               // <-- c = NaN + 100 = NaN


문자열과 결합할 경우 서로 연결된다. [문자열 전염성이 최고]


var k = parseInt("hello");        // <-- k = NaN;

var c = k + "world";              // <-- c = NaN + "world" = "NaNworld";


NaN여부를 검사하기


boolean isNaN(string)


- Number함수나 parseInt함수를 사용하기 전, 파라미터로 전달되는 문자열이 Number 형식으로 변환 가능한지의 여부를 판단하는 함수


var a = isNaN("hello");        // true (NaN이 맞음)

var b = isNaN("123");          // false (NaN이 아님)


값이 숫자 형식인 경우 true, 숫자형식이 아닌 경우 false를 얻기 위해서는 isNaN 함수의 리턴값을 !를 사용하여 부정하면 된다.


var a = isNaN("hello");        // true (NaN이 맞음)

a = !a;                            // true를 부정하였으므로 false가 됨


일반적으로 위 결과는 다음과 같이 축약해서 사용한다.


var a = !isNaN("hello");        // false (숫자가 아님)



메시지 박스 관련 함수


void alert(string)


확인 버튼을 갖는 알림 메시지 박스를 표시한다.


파라미터 : 메시지 박스에 표시될 내용


boolean confirm(string)


- 확인, 취소 버튼을 갖는 확인 메시지 박스를 표시한다.

- 파라미터 : 메시지 박스에 표시될 내용

- 사용자가 긍정의 버튼을 클릭한 경우 true, 부정의 버튼을 클릭한 경우 false가 리턴된다.


string prompt(string msg, string def)


- 입력필드를 갖는 메시지 박스를 표시한다.

- 파라미터

msg : 메시지 박스에 표시될 내용

def : 입력필드에 설정될 기본값(필요없는 경우 빈문자열 ""을 지정)


- 리턴값

입력하지 않고 확인을 누른 경우 : ""

취소를 누른 경우 : null

정상적인 값을 입력한 경우 : 입력한 내용


=> 예외사항을 없애기 위해 if문에서 변수 자체를 !로 부정하면 ""과 null을 모두 포함 가능



이벤트(event)


- 이벤트란 사용자가 웹 페이지에서 행하는 어떠한 행위나 웹 페이지가 겪는 일련의 사건

행위 : 클릭, 마우스 이동, 드래그 등

사건 : 로딩완료, 다른 페이지로 이동 등

- 이벤트가 발생했을 때 호출될 함수를 정의하고 연결하는 과정을 이벤트 처리라고 한다.


대표적인 이벤트 종류


onClick                어떤 요소를 클릭한 경우

onMouseOver        어떤 요소 위에 마우스 커서가 올라가 있는 경우

onMouseOut        어떤 요소 위에 마우스 커서가 벗어난 경우

onLoad                (body 태그에 적용하여) 페이지 로딩이 완료된 직후



이벤트 사용 방법


javascript 함수를 미리 정의해두고 HTML 태그의 속성형태로 이벤트 이름을 명시한 다음 

함수의 호출구문을 속성에 대한 값으로 지정한다.


function foo() {

alert("Hello world");

}


<!-- <태그이름 이벤트이름="함수호출"> -->


<input type="button" value="click" onClick="foo()">



Javascript 구문 특성


Javascript는 <script> 태그가 서로 분리되어 있어도 실행시에는 하나로 병합되어 동작한다.


<html>

<head>

<script> var a = 10; </script>

</head>

<body>

<script> var b = 20; </script>


....


<script> var c = a+b; </script>

</body>

</html>



소스코드 실행 시점


HTML파일을 한 라인씩 해석하는 브라우저의 특성상 소스코드의 위치에 따라서 실행시점이 결정되므로

HTML 태그를 제어하고자 하는 경우 제어하려는 HTML 태그보다 소스코드가 나중에 명시되어야 한다.


case1 - <body> 태그 닫기 직전에 스크립트 코드 명시


<body>

<div id = "foo">...</div>

<script>

document.getElementsById("foo").innerHTML = "hello";

</script>

</body>


그러나 이렇게 작성하는 경우 스파게티 코드가 되어 가독성, 유지보수에서 좋지 않다.


case2 - <head> 태그에 스크립트 코드가 함수 단위로 정의되는 경우


onload 이벤트를 통해서 해당 함수를 호출시킨다. 

[브라우저가 HTML태그 전체를 인식할 때까지 스크립트 실행을 기다려야 하기 때문.]


<head>

<script>

function foo() { ... }

</script>

</head>

<body onload = "foo()">

</body>



HTML 태그의 id속성값 중복 금지!!!!


CSS에서는 id값이 중복될 경우 여러 요소에 대하여 동시에 적용이 가능하지만,

JS의 경우는 id속성이 중복될 경우 그 중에서 가장 첫 번째 요소만 인식하고 그 외의 요소들은 식별하지 못한다.

그러므로 HTML에서 id속성은 반드시 고유한 값을 사용해야 한다.


<head>

<style>

/** 모든 id="hello"에 적용됨 */

# hello {color: red;}

</style>

<script>

function foo() {

// 첫 번째 요소에만 적용됨

document.getElementById("hello").innerHTML = "hello";

}

</script>

</head>

<body onload = "foo">

<div id = "hello"> ... </div>

<div id = "hello"> ... </div>

<div id = "hello"> ... </div>

</body>


[팁!] CSS에서는 클래스 속성만 사용하고, JS에서는 id속성만을 사용한다.

'Web 관련' 카테고리의 다른 글

Javascript+jQuery+Ajax 5일차  (0) 2019.01.30
Javascript+jQuery+Ajax 4일차  (0) 2019.01.30
Javascript 오답노트  (0) 2019.01.28
Javascript+jQuery+Ajax 2일차  (0) 2019.01.28
Javascript 1일차 요점 정리  (0) 2019.01.25

반복문


for문


for (초기식; 조건식; 증감식) {

    ... 반복 수행할 명령 ...

}


1. 초기식을 수행


2. 조건식을 판별

    참인 경우 {}안을 수행

    거짓인 경우 {}을 빠져 나감

    

3. 참인 경우 {}을 수행하고 증감식으로 이동

4. 증감식을 수행 후 다시 조건식으로 이동

    2번부터 반복

    

while문


동작 방식은 for문과 동일


    초기식;

    while (조건식) {

... 반복 수행할 명령 ...

증감식;

    }


흐름제어 구문의 중첩사용


블록{}을 구성하는 구문들은 서로 중첩하여 사용할 수 잇음.


if - if


if (조건) {

if (조건) {

...

} else {

...

}

} else {

if (조건) {

...

} else {

...

}

}


if - for


조건문 안에 반복문이 들어가는 형태.


조건문은 if문 뿐만 아니라 switch문도 가능함.

반복문은 for문 뿐만 아니라 while문도 가능함.


if (조건) {

for (초기식; 조건식; 증감식) {


}

} else {


for (초기식; 조건식; 증감식) {


}

}


for - if


매 반복 수행시마다 if문의 조건을 검사함


for (초기식; 조건식; 증감식) {

      if (조건) {

...

} else {

...

}

}


for - for

바깥의 반복문이 1회 수행하는 동안 안쪽의 반복문 전체가 매번 새로 시작함

ex) 구구단


일반적으로 바깥의 반복문이 행을 표현하고 안쪽의 반복문이 열을 표현함.(행렬)


for (초기식; 조건식; 증감식) {

   for (초기식; 조건식; 증감식) {

       ...

   }

}


함수


재사용 가능한 프로그램 명령어의 집합


function 함수이름(파라미터1, 파라미터2, ... , 파라미터n) {

... 명령어 ...

[return [값]];

}


- 파라미터는 함수가 실행되기 위해 주어지는 조건값

파라미터를 명시할 경우 필요한 만큼 콤마로 구분하여 변수를 선언

- return은 함수가 호출된 위치에 결과값을 돌려주기 위한 키워드

값(변수)을 명시하지 않을 경우 undefined가 리턴됨.

함수의 실행 도중, 특정 조건이 충족되어 return을 중간에 만날 경우 함수는 그 즉시 실행을 중단한다.


하나의 함수 안에서는 다른 함수를 호출할 수 있다.


function foo() {

... 명령어 ...

return 1;

}


function bar() {

var a = foo();

return a+1;

}



'Web 관련' 카테고리의 다른 글

Javascript+jQuery+Ajax 5일차  (0) 2019.01.30
Javascript+jQuery+Ajax 4일차  (0) 2019.01.30
Javascript 오답노트  (0) 2019.01.28
Javascript+jQuery+Ajax 3일차  (0) 2019.01.28
Javascript 1일차 요점 정리  (0) 2019.01.25
Javascript 1일차 요점 정리


Javascript 작성 방법


Javascript는 HTML 소스코드에 포함되는 형태로 작성한다.


HTML 소스코드에 포함시키기


다음의 코드를 HTML 소스코드 안에 명시. 일반적으로 <head></head>에 위치한다.


    <script [type="text/javascript"]>

        ... javascript 구문...

    </script>


외부 파일에 대한 참조를 포함시키기


<script>태그를 제외한 Javascript 구문만 *.js로 저장된 별도의 파일로 분리하고 <script>태그의 src속성으로


분리된 파일의 경로를 참조시킨다.


    <script [type="text/javascript" src="*.js파일의 경로"]></script>



결과를 출력시키는 방법


화면에 메시지 박스 형태로 표시하기


alert(내용)


브라우저의 개발자도구 내에 포함된 콘솔을 통한 출력


console.log(내용)



변수


데이터를 저장하기 위한 키워드. 변수를 사용하기 위해서는 선언과 할당의 과정이 필요하다.


    var 변수이름;       // 변수의 선언

    변수이름 = 값;      // 선언된 변수에 값 할당

    

선언과 할당을 결합한 형태


    var 변수이름 = 값;

    

- 변수의 이름은 영어+숫자+언더바의 조합으로 구성한다.

- 띄어쓰기가 필요한 경우 언더바를 사용하거나 첫 글자를 대문자로 표현.

- 값의 할당은 오른쪽에서 왼쪽으로만 가능

- 저장 가능한 값의 종류


        Boolean : 논리값. 참(true) / 거짓(false)

        Number : 정수(integer), 실수(double)값

        String : 문자열(문장). 쌍따옴표나 홑따옴표로 감싸서 표현

        Null : 값이 확정되기 이전에 임의로 비워둔 상태

        undefined : 값이 할당되지 않은 상태

        Object: 객체(이후 살펴봄)

        


연산자


사칙연산


- 기본적인 +,-,*,/(몫),%(나머지)

- 곱하기, 나누기가 더하기 빼기보다 우선함

- 괄호()로 묶은 부분이 최우선 처리됨

- 더해지는 값에 문자열이 포함되어 있는 경우 모두 하나의 문장으로 결합된다.


var a = "가나다";

var b = 123;

var c = a+b;        // "가나다123"



단항연산


- 연산 결과를 변수 스스로에게 다시 적용할 경우의 단축표현

- 모든 사칙연산자에 대해서 표현 가능함


var a = 100;

a = a + 10;            // a가 10증가됨.

a += 10;                // 같은 표현.



증감연산


- 단항연산에서 사용되는 값이 1이고 덧셈과 뺄셈의 경우만 축약 가능함.


var a = 100;

a++;

++a;

a--;

--a;



- 다른 연산식에 포함될 경우 증감연산자의 위치에 따라서 계산되는 시점이 다르다.


var a = 1;

// (뒷북) 100+1을 먼저 수행해서 y값을 확정. 그 후 a가 증가함.

y = 100 + a++;


// (앞북) 100+1을 먼저 1 증가하고 100+2가 수행돼서 y값을 확정.

y = 100 + ++a;



비교연산


- 일반적인 부등식


같다 : ==

다르다 : !=

크다(초과): >

크거나 같다(이상): >=

작다(미만): <

작거나 같다(이하): <=


- 부등식의 결과는 참(true), 혹은 거짓(false)이 된다.


var a = 100 < 1000;            // true

var b = 50 >= 1000;            // false



논리연산


- 참과 거짓을 and(&&), or(||)로 비교하여 결과를 도출

- &&: 모든 값이 참인 경우만 결과가 참

- ||: 하나라도 참이면 결과가 참


프로그램의 흐름제어(1)


조건문


if문


괄호 안에 주어진 조건이 참인 경우 블록{}안을 수행.


if (조건) {

// ... 조건이 참인 경우 실행할 명령 ...

}


조건에 명시할 수 있는 형식


1. 비교식(==, !=, >, >=, <, <=)

2. 논리식(&&, ||)

3. 논리값(true/false)


if ~ else문


조건이 참인 경우 if블록이 실행, 그렇지 않은 경우 else 블록이 실행


if (조건) {

// ... 조건이 참인 경우 실행할 명령 ...

} else {

// ... 조건이 참이 아닌 경우 실행할 명령 ...

}


if ~ else if ~ else문


여러개의 조건을 나열하여 그 중 가장 처음 만나는 참인 조건의 블록을 수행함. 그외의 블록은 실행하지 않고 빠져 나간다.



if (1차 조건) {

... 

} else if (2차 조건) {

 ... 

} else if (3차 조건) {

...

} else {

... 

}


switch문


하나의 변수값에 대한 여러가지 경우의 수를 나열하고 그 중 참인 경우를 실행함


switch (변수) {


case '값1':                // 경우의 수는 필요한 만큼 나열

...

break;


case '값2':                

...

break;


case '값n':                

...

break;


default:                // 일치하는 경우가 없을 경우 수행할 블록(생략가능)

...

break;

}




'Web 관련' 카테고리의 다른 글

Javascript+jQuery+Ajax 5일차  (0) 2019.01.30
Javascript+jQuery+Ajax 4일차  (0) 2019.01.30
Javascript 오답노트  (0) 2019.01.28
Javascript+jQuery+Ajax 3일차  (0) 2019.01.28
Javascript+jQuery+Ajax 2일차  (0) 2019.01.28

+ Recent posts