JavaScript와 Java의 자료형의 차이? js에는 undefined가 있고, 함수 또한 객체로 구분된다.
java는 전역변수를 선언, 초기화하여 사용하지만? javascript는 전역변수 선언 없이 바로 사용 가능하다
후위 : b++ -> 먼저 출력 나중에 증가
전위 : ++b -> 계산 먼저 나중에 출력
let b = 2;
console.log(b++); //2
console.log(b); //3
console.log(--b); //2
console.log(b); //2
${}
자바스크립트
프로젝트 생성(JavaScript)
D:\vscode_web\dev_js231106
$ npm init -y
Wrote to D:\vscode_web\dev_js231106\package.json:
{
"name": "dev_js231106",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
D:\vscode_web\dev_js231106 (dev_js231106@1.0.0)
$ ls -al
total 1
drwxr-xr-x 1 GD 197121 0 11월 6 09:38 ./
drwxr-xr-x 1 GD 197121 0 11월 6 09:38 ../
-rw-r--r-- 1 GD 197121 226 11월 6 09:38 package.json
D:\vscode_web\dev_js231106 (dev_js231106@1.0.0)
$ code .
자료형 타입(Java와 유사-다른 부분을 우선적으로 공부)
원시형(privative type) - 특정값이 메모리에 바로 저장(값만)
참조형(reference type) - 값이 위치하고 있는 참조 주소 값만 메모리에 저장 → 관련 내장 함수 참조(prototype)
Null(Object 급) - 명시적으로 특정 변수의 값을 비워줌.
array(Object 급) - 연관된 값을 그룹으로 묶어서 관리하는 형태
객체(Object 급) - Object 데이터를 key라는 인덱싱을 통해 자료를 구조적으로 묶어놓은 상태, 함수도 객체다
- 함수
```jsx
const hello = () => {
console.log("Hello😜");
return "hello";
};
//hello, hello() 다른가?? -> hello는 함수, hello는 함수로 호출된 값
console.log(typeof hello); //function
console.log(typeof hello()); //string
```
```jsx
const a = () => {
console.log("A");
};
console.log(a); //[function : a]
console.log(a()); //undefined
const b = (c) => {
console.log(c); //function a
c();
};
b(a);
```
→ array, 객체, JSON을 오가면서 사용하는 것 연습 필요(array를 JSON으로, JSON을 array로/목록처리 시 필수템)
false(거짓)로 나오는 6가지!📒
부정(!)
//false로 나오는 것 !으로 true로 만들기
console.log(!false);
console.log(!0);
console.log(!null);
console.log(!undefined);
console.log(!NaN);
console.log(!"");
외부 재사용 시 반드시
자바스크립트는 기본적으로 동기 처리
결과물
폴더 | 구성 | 내용 |
---|---|---|
bin | www | express 사용 관련 함수 |
public-javascripts | firebase.js | 구글firebase 연결 관련 |
public-styleshteets | style.css | 페이지 구성관련 |
routes | index.js | 페이지전환 설계 |
routes | users.js | 라우터 설정 |
views | error.ejs | html 랜더링(브라우저에 표시) |
views | footer.ejs | footer 구성 |
views | header.ejs | header구성(whit 부트스트랩) |
views | home.ejs | 홈페이지 글 |
views | index.ejs | HTML 문서의 구조와 외부 리소스를 로드 |
views-auth | login.ejs | 웹 애플리케이션의 기본 설정 |
- | app.js | (모듈로딩, 앱 생성, 미들웨어 생성, 라우트설정, 에러 핸들러, 앱 내보내기 등) |
웹 애플리케이션 위한 기본적 설정, 모듈 로딩, 템플릿 엔진 및 라우터 설정
상단(사용할 모듈 로딩하는 코드)
외부 모듈을 해당 파일에서 사용하려면 require() 함수 호출해야 함.
// 로딩한 라우트 함수를 지정된 변수로 사용할 수 있게 됨.
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
view engin setup