본문 바로가기
[ javascript ]

[java script 개념] 자바 스크립트 기본 개념 정리

by 히앤님 2020. 8. 16.
반응형
SMALL

자바스크립트(java script)는 HTML 언어에 추가되서 웹페이지를 동적으로 다양하게 제작할 수 있게 도와주는 스크립트 언어이다. 스크립트 언어는 혼자 실행될 수 없어서 다른 언어에 포함되어 실행되고, 문법이 복잡하지 않은 특징을 가지고 있다. 즉, 자바스크립트는 HTML 안에서만 구현된다. 공식 명칭은 [ECMAScript]

 

<html 문서 내의 언어들>

이름 특징 태그
태그 컨텐츠 출력 <hr>, <font> 등
CSS 디자인 담당 <style="color: blue">~</style>
java script 동적인 조작 기법 <script> ~ </script>

 

자바 스크립트 기능

1. 유효성 체크 : 데이터가 DB에 저장될 수 있는지, 부족한 것은 없는지 검사

2. 태그 속성값 또는 태그 자체의 입력/수정/삭제 : html의 태그 컨트롤

3. AJAX를 통한 웹서버와의 데이터 통신

4. 동적인 메뉴 제작, 이미지 효과

 

AJAX: 비동기 방식으로 웹서버와 통신한 후에 통신 결과물을 화면에 반영하는 기술들의 총칭.

비동기 방식: 페이지 이동 없이 웹서버와 통신하는 방식 (예 : ID 중복 검사, 연관검색어 등)

 

자바 스크립트 특징

  • HTML 소스 코드 안에 삽입되어 웹브라우저에 결과 출력 -> 소스가 클라이언트에게 노출. 보안성이 낮다.
  • AJAX를 사용하여 간접 DB연동 가능(자바는 직접 DB 연동)
  • 문법이 자바나 C보다 쉽다. 모든 변수의 형식을 검사하지 않기 때문. 때문에 에러 발생 시 찾기가 힘들다.
  • 화면 출력이 목적!

 

자바스크립트 형식

자바 스크립트 형식

<script> ~ </script> 안에 삽입되어 사용된다. 

함수인 경우 관용적으로 head 안에 있는 편.

자바 스크립트 수입

스크립트가 너무 길면 확장자를 js로 설정하여 독립된 파일을 만든다.

필요 시에 html 파일에 수입해서 삽입할 수 있다.

 

<자바스크립트 자료형>

자료형 종류 설명
숫자형 정수, 실수 데이터.
문자형 문자데이터. "로 감싼다. ""는 길이 없는 문자데이터.
boolean 형 true / false 데이터.
함수형 function(){실행구문;} 형태의 데이터.
1. 함수 전체를 데이터의 한 종류로 취급 (변수에 저장 가능)
2. 이름이 없을 수 있음.(=익명함수)
객체형 속성변수와 메소드로 구성된 단위 프로그램을 객체화했을 때 객체가 차지하는 메모리 공간의 위치 주소값.
ex) var aaa = new nnn();
undefined 형 알수없는 데이터. 프로그램에서 사용할 수 없는 데이터. 위의 5가지가 아닌 모든 것의 자료형을 말한다.(null이 아님)

 

자바스크립트 변수

var 변수명 = 데이터;

변수는 세 종류가 있다.

1. 전역변수 : var가 있거나 없거나. 모든 자바스크립트에서 공유 가능한 변수

2. 지역변수 : 함수 안에서 var로 선언되어 함수 안에서만 사용되는 함수. 전역변수랑 헷갈릴 수 있음.

3. 매개변수 : 함수 호출 시 전달되는 데이터를 저장하는 변수다. 함수 안에서만 사용 가능(함수 오른쪽에 위치). 앞에 var 없음.

 

변수 선언 형식

var aaa;  //undefined

var aaa = 5; //변수 선언

var aaa; //선언 후 데이터 넣기
aaa = 5;

 

데이터 자료형

var aaa = "123";  //문자형
var aaa = "123";  //숫자형
var aaa = boolean("n");  //논리형

논리형의 경우, 하단 "자바스크립트 조건문" 참고.

<참고> 자료형을 출력해보려면 typeOf를 사용한다. ex) document.write( typeOf aaa );

 

자바스크립트 연산자

1. ===연산자

자바와 동일.

단, 비교 연산자에서 ===의 경우 좌우가 같으면 true를 리턴한다. (자바에 없는 연산자)

true가 리턴되려면 자료형이 같아야한다. 자료형이 다르면 다른 유형의 데이터를 비교하는 것으로, 무조건 false가 리턴된다.

<주의> 자바는 [숫자]와 [숫자문자] 간의 비교가 불가능했으나, 자바스크립트는 [숫자문자]가 [숫자]로 변환되어 비교된다.

"10" == 10  //true, 자료형상관x

"10" === 10 //false, 자료형 일치해야함.

 

2. 문자 결합 연산자

"문자" + "문자" = "문자문자";  //문자끼리 더하면 문자
"문자" + 123 = "문자123";   //문자+숫자는 문자화

 

3. 삼항조건연산자

var aaa = a>b ? "맞아" : "아냐";

a가 b보다 클 때(조건식), 삼항조건연산자 ? 의 출력값 리턴. true일 경우 "맞아", false일 경우 "아냐" 출력.

 

 

자바스크립트 조건문

if(조건식1){ 실행구문; }

조건식 자리에는 boolean 형으로 true, false가 온다.(비교 연산식 또는 논리연산식이 나옴)

조건식 자리에 boolean 형이 아닌 데이터가 올 수 있다.

비어있거나(null), "",'' 등 길이가 없는 문자데이터 또는 0이 나오면 false로 형변환이 되고, 그 이외의 데이터는 true로 변환된다.

예)if(5){ 실행구문; } -> true일 때 실행구문을 실행하는 것.

 

자바스크립트 객체

ex) TV

기능(메소드) : 켜다(), 끄다()   -> 호출 : 객체.메소드(~);

속성 : 높이, 색상, 무게 등  -> 호출 : 객체.속성; 또는 객체.속성 = 값;

 

종류

1. 내장 객체 : 엔진에 이미 만들어져 저장.

ex) 문자, 날짜, 배열, 수학 등

생성 방법

var 변수명 = new Object(); //기본
var 변수명 = new Date(); //날짜
var 변수명 = new Math(); //수학
var 변수명 = new Array(); //배열
var 변수명 = new String(); //문자열

변수가 기본객체생성함수( Object(); )메소드를 참조중.

 

 

2. 브라우저 객체(BOM) : 브라우저에 계층구조로 내장되어 있음.

ex) Window(document, location) , Screen, Location, History, Navigator, Event

 

3. 문서객체(DOM) : html 문서 구조.

ex) <html>, <head>, <body> 등의 태그

-> 이러한 구조를 파악해야 원하는 곳에 원하는 기능을 넣을 수 있음.

-> 문서객체 대신에 jQuery 문서 객체 모델 사용이 많다.

 

자바스크립트 함수

자바의 메소드와 유사하다.

[실행구문]에 이름을 붙여 선언한 후 필요시점에 이름을 호출하여 실행구문을 실행하는 일종의 단위 프로그램.

-> 반복 사용하는 실행구문을 함수로 만들어 놓으면 보관이 용이하고 언제든지 쉽게 호출 가능하다.

함수는 반복 호출이 가능하고, 함수명을 호출해야 함수 내용이 실행된다. 호출 전에는 실행되지 않는다.

 

<자바스크립트 함수 종류>

함수 종류 설명
정적함수 함수명을 붙여 선언하는 함수
-> 웹브라우저는 정적함수를 먼저 골라 읽어드린 후 나머지 코딩을 실행하기 때문에 관용적으로 위쪽에 써준다.
<주의> 동일한 이름의 정적함수가 2개면, 마지막 정적함수가 진짜 정적함수다.
익명함수 함수명 없이 선언하는 함수로 주로 변수에 저장한다.(=데이터의 한 종류)
매개변수는 0개 이상 나올 수 있으며, 함수 호출 시 return 반환값;이 나오면 함수 중단 후 반환값을 호출한 곳으로 리턴한다. 그냥 return;만 나오면 함수 중단.
내장함수 자바스크립트에 이미 만들어져 제공하는 함수
내부함수 함수 내부에 선언된 또다른 함수
<주의> 내부함수와 외부함수의 이름이 같을 경우 [부모함수] 안에서 [내부함수]를 호출할 때 [내부함수]가우선적으로 호출된다.
사용자 정의 함수 개발자가 만들어서 사용하는 함수
콜백함수 직접 호출하지 않고 나중에 필요시에 호출해서 사용하라고 전달해주는 함수.
예) setTimeout( function(~){실행구문;}, 초숫자 );

 

객체 생성자 함수

function 함수명( 매개변수1, 매개변수2, ... , 매개변수n){
   this.속성명 = 새 값;
   this.함수명 = function(){실행구문;}
}

var 참조변수(인스턴스 네임) = new 함수명();
var 참조변수 = {  속성 : 새값, 함수명 : function(){~}  }
반응형
LIST

댓글