inline, embed, external file 방식 3가지 방식으로 사용할 수 있다.
HTML태그에 직접 정의하는 방식.
코드의 적용우선순위가 가장 높다.
코드의 중복성이 높다. 복잡한 코드를 작성하기 어렵다.
구조와 동작이 결합된다.
<태그명 onXXX="자바스크립트 코드">
HTML에 script태그를 사용하여 정의하는 방식.
코드의 중복성을 낮출 수 있다.
HTML태그와 JS Code를 분리할 수 있다.
<script type="text/javascript">
자바스크립트 코드
</script>
-------------------------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type=“text/javascript”>
자바스크립트 코드
</script>
</head>
<body>
.
.
<script type=“text/javascript”>
자바스크립트 코드
</script>
.
.
</body>
</html>
확장자가 .js인 파일을 만들고 필요한 HTML에서 연결하여 사용하여 방식
코드의 중복성이 가장 낮은 방식.
JavaScript Library가 개발되고 배포되는 방식.
.js파일의 인코딩과 HTML파일의 인코딩이 같지 않으면 한글이 깨진다.
1. .js인 파일생성
2. 필요한 HTML에서 연결하여 사용
<script type="text/javascript" src="연결할 JS의 URL"></script>
//외부파일을 연결한 <script>태그 사이에서는
//절대로 자바스크립트 코드를 정의하지 않는다.
자바스크립트 코딩 시 주의사항.
대.소문자 구분.
괄호는 짝으로 정의. (), {}, []
;은 생략 가능.
출력
-경고창으로 출력(코드의 실행을 멈추고 출력. - debug용)
alert(값);
-HTML <body> 출력.
window.document.write(출력값);
-console 출력(개발자 도구 (F12)의 console출력 - debug용)
console.log(값);
프로그램에서 필요한 값을 일시적으로 저장하고 사용하기 위해서.
가독성향상.
변수를 선언할 때 데이터 형을 직접 지정할 수 없다.(TypeScript은 가능)
데이터 형은 변수에 값이 할당될 때 동적으로 결정된다.(동적할당)
hoisting을 지원 - 아래 라인에서 선언된 변수를 윗 라인에서 사용할 수 있는 것.
전역변수와 지역변수를 제공.
지역변수) 데이터 형을 설정할 수 없다.
1. 선언
var 변수명; //값 할당될 때 변수에 데이터 형이 결정된다.
2. 값 할당
변수명 = 값;
3. 값 사용
출력, 연산, 재할당
console.log(변수명)
* 변수의 데이터 형 명을 얻기
typeof(변수명)
전역변수
1. 선언 및 값 할당
var를 붙이지 않는다.
변수명 = 값;
2. 값 사용
출력, 연산, 재할당
console.log(변수명)
const 상수명 = 값; //값 할당은 선언할 때만 가능하다(값 변경 불가)
let : - hoisting을 막을 때 사용.(존재하지 않는 변수를 사용하게 되는 상황을 막기 위해)
연산에 사용되는 예약된 부호들.
최단쉬 관리 삼대 콤마
~, !, +, -, ++, --
+, -, *, /, %
<<. >>, >>>
>, <, >=, <=,
==(값만 같은지 비교), ===(값과 데이터 형이 모두 같은지 비교),
!=(값이 다른지 비교), !==(값과 데이터 형이 모두 다른지 비교)
var num=10;//number
var num2="10";//string
num == num2 => true(데이터형은 달라도 값이 같으니 true가 나온다.//값의 비교가 느슨하다.)
num === num2 => false(값은 같으나 데이터 형은 달라서 false가 나온다.//값의 비교가 빡세다.)
일반논리 : 여러 개의 관계연산자를 묶어서 비교 &&, ||
비트논리 : 비트 연산 &, |, ^
?
=, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, |=, ^=
web browser에서 제공하는 입력 값을 받을 수 있는 객체.
입력 값은 문자열로 반환된다.
입력 폼을 만들지 않고, 값을 동적으로 얻을 때 사용.
var 변수명 = prompt("제공할 메시지", "기본값");
프로그램의 순차적인 흐름을 변경해 줄 수 있는 문장들.
if, switch~case( 모든 값을 비교할 수 있다.)
단일 if) - 조건에 맞을 때에만 코드를 실행해야할 때
if(조건식){
조건에 맞을 때 수행할 문장들,,,;
}
- if~else) - 둘 중 하나의 코드를 실행해야할 때
if(조건식){
조건에 맞을 때 수행할 문장들,,,;
}else{
조건에 맞지 않을 때 수행할 문장들,,,;
}
- else~if) - 연관된 여러조건을 비교
if (조건식) {
조건에 맞을 때 수행할 문장들,,,;
} else if (조건식) {
조건에 맞지 않을 때 수행할 문장들,,,;
} else if (조건식) {
조건에 맞지 않을 때 수행할 문장들,,,;
} else {
모든 조건에 맞지 않을 때 수행할 문장들,,,;
}
switch(변수명){
case 상수 : 변수의 값이 상수와 같을 때 수행할 문장; break;
case 상수 : 변수의 값이 상수와 같을 때 수행할 문장; break;
...
default : 비교될 상수가 없을 때 수행될 문장;
}
for : 시작과 끝을 알 때 사용.
for(초기값; 조건식; 증.감소식){
반복수행 문장들,,,;
}
* 초기값은 가급적이면 지역변수로 선언
var, let의 형식을 권장(전역변수 형식으로 사용하지 말 것!)
for(i=0; i < 10; i++)//전역변수 형식 권장X
for(var i=0; i < 10; i++)//권장O
for(let i=0; i < 10; i++)//권장O
초기값
while(조건식){
반복수행할 문장들,,,
증,감소식
}
초기값
do{
반복수행할 문장들,,,
증.감소식
}while(조건식);
1. 생성
var 배열명 = new Array();//방의 수를 설정하지 않는다.
2. 값 할당
배열명[ 인덱스 ] = 값;//값이 할당되면 방의 개수가 증가한다.
3. 값 얻기
배열명[인덱스]
-일괄처리
for(var i=0; i<배열명.length; i++){
배열명[i]
}
* 배열의 초기화 (기본형 형식의 사용)
var 배열명 = [ 값,,, ];
JavaScript에서 템플릿 리터럴(Templete Literal)을 사용할 때 사용되는 특별한 문자(`)
문자열이 사용되는 곳에서는 어디에서든 사용할 수 있다.
`문자열 ${변수명} 문자열,,,`
var name="윤웅찬";
document.write(`내 이름은 ${name}입니다. <br>`);