※ 자바스크립트
node.js : 종합적인 프로그램 관리 도구
※ 개발 환경 구성
1. vscode 설치
2. Node.js 설치
https://nodejs.org/ko/download/
다운로드 | Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
2. vscode에서 node.js 설치 확인
터미널 클릭
node -v
npm -v
입력 후 제대로 설치됐는지 확인
3. vscode Extention 설치
※ 자바스크립트 기본 문법
1. 자바스크립트 작성 위치
- head, body 의 마지막쪽에 작성 (효율적인 관리를 위해)
- head에 작성하면
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>Page Title</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<script>
document.write("자바스크립트 head에 위치 1<br>");
</script>
</head>
<body>
<script>
document.write("자바스크립트 head에 위치 2<br>");
</script>
</body>
</html>
2. HTML파일 실행
2-1) 콘솔
<script>
document.write("정상적인 코드 이용");
document.wirte("잘못된 코드 이용");
console.log("콘솔창에 출력하기");
</script>
* js 코드 에러
- 코드에 에러가 생기면 다음 코드가 실행되지않음
* 여러개의 인자를 한번에 출력할 수 있다. ↓
console.log("콘솔창에 출력하기", 1, true, [], {});
* log level 정리 필요
4. 주석처리
- 자바랑 같음
- 일반주석 / , 범위주석 /* */, 문서주석 /** */ 등
5. 변수와 상수
5-1) 변수
- 자바스크립트에서는 데이터/오브젝트/함수를 변수로 선언해서 사용할 수 있다. (충격적임)
- var, let 키워드 사용
5-2) 상수
- const 키워드 사용
5-3) 공통사항
- 자바나 c같은 플그래밍 언어는 변수를 선언할 때 변수에 담을 데이터에 따라 변수를 선언하는 방식이 다르지만, 자바스크립트는 데이터 타입에 상관없이 동일한 변수 선언자를 사용할 수 있다.
5-4) 변수 선언 형식
- 변수 선언자, 변수명, 할당값 형식으로 선언
- 지역변수는 의미가 크게 상관없지만, 전역변수의 변수명은 어떤 용도로 사용될지 알 수 있도록 하는것이 매우중요
5-5) 변수명 작성 규칙
-
6. var 선언자
- var는 중복선언이 가능함
- let은 변수의 중복선언을 막아줌
var x = 5;
var y = 6;
var x = 10;
var z = x+y;
console.log(z)
let a = 5;
let b = 6;
let a = 10;
let c = a+b;
console.log(c)
7. let 선언자
- 블록기반 scope 사용
- ↓ 에러 발생
{
let a = 10;
}
console.log(a);
8. const선언자 (상수)
- 스코프 및 사용방법은 let과 동일
- 변수명은 대문자를 사용 (소문자는 비초기화상수)
-
9. 데이터 타입
- String (문자열)
- Number (숫자/범위는 double과 비슷함)
- Boolean(참/거짓)
- Undefined
- Null
- Symbol
9-1) String
- 쌍따옴표, 홑따옴표를 사용해 변수에 할당 할 수 있음
- 문자열 데이터 안에 쌍따옴표를 사용하려면 문자열을 홑따옴표를 이용해서 할당해야 하고
데이터안에 홑따옴표를 이용하려면 문자열을 쌍따옴표를 이용해서 할당해야함
- 자바의 문자열 사용법도 사용가능
예제)
let single = "He is called 'johnny'";
let double = 'He is called "johnny"';
let double2 = "He is called \"johnny\""; // 자바의 문자열 사용법
console.log(single)
console.log(double)
console.log(double2)
// 영어, 숫자, 한글 전부 1글자
console.log(single.length);
let mixedStr = 'abcd가나다';
console.log(mixedStr.length);
console.log(mixedStr.substring(4, 5));
console.log(mixedStr[4]);
9-2) Number
- 정수만 사용하는걸 권장 (실수는 오차가 발생할 수 있음)
let x1 = 34;
let x2 = 34.12;
//데이터 타입 확인
console.log(typeof mixedStr);
console.log(typeof x1);
x1 = '1234';
console.log(typeof mixedStr);
console.log(typeof x1);
console.log(Number.MAX_VALUE);
* 부동소수점
- 2진화에서 문제가 발생 (정수 문제가 없지만 실수에서 2진화 과정중에 문제가 발생한다.)
9-4) Boolean
- 자바와 같음
9-5) Undefined (정의되지 않음)
- 변수를 선언하고 값을 할당하지 않은상태
var val = undefined;
console.log(val);
// not defined = 선언하지 않은 상태
console.log(aaa);
9-7) Null
- null은 object type이다.
- js에서는 null이라고 명시해두지않으면 자바와 다르게 null을 보기 힘들다
- null은 개발자가 의도해서 사용하는 경우라고 보면 된다. (Undefined도 같음)
-
var val = undefined;
var n = null;
console.log(typeof val);
console.log(typeof n);
9-8) Symbol
- 나중에함
* js는 모든 데이터 타입이 참조형으로 관리된다
9-9) Objects
- 자바스크립트의 모든것은 객체(Object)이다.
- 모든 오브젝트는 요소가 있음
- map, object
9-9-1) Object
-
// {} = 오브젝트 리터럴
let obj = {a:10, b:'abcd', c:{a:10, b:20}};
// 데이터 변경
obj.a = 20;
// 데이터 추가
obj.d = 50;
// 데이터 삭제
delete obj.a;
console.log(obj);
console.log(obj.b);
console.log(obj["b"]);
console.log(obj.c.b);
9-10) Array (배열)
- 하나이상의 다중 데이터를 저장할 수 있음. (자바랑 같음)
- 인덱스 순번은 0번부터 시작됨(자바랑 같음)
- 아무타입(문자, 숫자, 객체(Object), 함수 등등 섞어서 저장할 수 있음 (자바랑 다른점)
- 자바에서의 list와 비슷함
let arr = [10, 30, 50, "a", true, {}, [1, 2, 3]];
console.log(arr);
console.log(arr.length);
console.log(arr[3]);
// 배열 수정
arr[3] = 100;
console.log(arr[3]);
let students = [
{no:1, name:"홍길동", kor:90},
{no:2, name:"김길동", kor:70}
];
console.log(students);
console.log(students[1].name);
* 호출스택중 push, pop 정리 필요
9-11) typeof
- 변수의 데이터 타입을 알아낼 수 있음.
10. 64비트 부동소수점
- 浮動소수점
- 어.... 공부하자..
11. 연산자
- 산술, 비교, 논리, 문자열
11-1) 할당연산자 (대입연산자)
p. 66 표 삽입 필요
console.log("12"+3);
console.log("12"-3);
console.log("12"*3);
console.log("12"/3);
console.log("a"/3);
11-2) 비교연산자
// 비교연산
num = 10;
let str = "10";
console.log(num == str);
// === 피연산자의 수치값만 비교하는것이 아닌 타입까지 비교
console.log(num === str);
//
console.log(num !== str);
총 정리본 (보고 정라해둘것)
// 대입
// <<
let num = 10;
num <<=3;
console.log(num);
num = 3 ** 4 ;
console.log(num);
// 비교연산
num = 10;
let str = "10";
console.log(num == str);
// === 피연산자의 수치값만 비교하는것이 아닌 타입까지 비교
console.log(num === str);
//
console.log(num !== str);
// 산술연산
// + - * / %
// 단항 부호 연산 + -
// NaN : Not a Number
console.log(typeof NaN);
// 할수있을때 까지만 해줌
console.log(parseInt("123가나다"));
console.log(parseInt("a123가나다"));
console.log(+("123가나다"));
console.log(NaN == NaN);
console.log(3/0 == Infinity);
console.log(isNaN(NaN));
console.log(isFinite(Infinity));
//
console.log("12"+3);
console.log("12"-3);
console.log("12"*3);
console.log("12"/3);
console.log("a"/3);
// 이중부정
console.log(!!"");
console.log(!!0);
console.log(!!NaN);
console.log(!!Infinity);
console.log(!!undefined);
console.log(!!null);
console.log(!![]);
console.log(!!{});
console.log(!!" ");
let arr = [];
arr.length = 20;
console.log(arr[30]);
arr[30] = 1;
console.log(arr);
let sum = 0;
// for(let i=0; i<=100; i++) {
// sum += i
// }
for(let i=100; i-- ;){
sum += i+1
}
console.log(sum)
12. 조건문
예제)
<script>
// undefined alert('알림메세지') 알림
// String prompt('문구', '기본값'); 사용자 입력값
// boolean confirm('문구'); 선택(참/거짓)
// 사용자로부터 나이를 입력받아서 요금을 출력
// 7세이하 0원
// 어린이 8세이상 13세이하 450원
// 청소년 14세이상 19세이하 720원
// 일반 20세이상 1200원
// 노인 70세이상 0원
let age = prompt('나이를 입력하세요')
// age = 0;
let fare = 0;
if(age <= 7 || age >= 70) {
fare = 0;
}
else if (age <= 13) {
fare = 450;
}else if (age <= 19) {
fare = 720;
} else {
fare = 1200;
}
alert(fare + "원");
</script>
13. switch
14. 반복문
- for-loop, for-in, for-of (향상포문과 같음), while
let arr = ['봄', '여름', '가을', '겨울'];
// console.log(arr[0]);
// console.log(arr[1]);
// console.log(arr[2]);
// console.log(arr[3]);
// for(let i=0; i<arr.length; i++) {
// console.log(arr[i]);
// }
let obj = {a:1, b:2, c:3};
// in 연산자
console.log('a' in obj);
console.log('d' in obj);
console.log(0 in arr);
console.log(4 in arr);
for(let i in arr) {
console.log(arr[i]);
}
for (let i in obj) {
console.log(obj[i]);
}
// for-of
// Array, Map, String등 반복가능한 객체에서 사용가능
for(let i of arr){
console.log(i);
}
'HTML5, CSS3 > Java Script' 카테고리의 다른 글
window.onload(js)와 $(document).ready(jquery)의 차이 (0) | 2024.01.17 |
---|---|
23-02-27 JS (0) | 2023.02.27 |
23-02-24 JS (0) | 2023.02.24 |
23-02-23 JS (0) | 2023.02.23 |