예>
<p>홍길동</p>
<p><span>홍길동</span></p>
<div>홍길동</div>
<div><span>홍길동</span></div>
<form action="target.html" method="get|post" id="myForm>
아이디 : <input />
<input type="submit" value="로그인">
<button> 로그인 </button>
<input type="button" value="로그인"> // submit이 안 됨 !!! JS 이용하면 가능 (f.submit();)
</form>
var f = document.querySelector("myForm"); // HTMLFormELEMENT 객체
f.action = "http://www.google.com";
f.method = "get|post";
f.submit();
(id, pw 입력 시 전송되도록 submit 방지)
event.preventDefault();
const [변수,변수2]= [값,값2];
const {key변수, key2변수}= {key:값, key2:값};
(1) JS에는 접근지정자가 없다 (public, private...)
(2) class가 키워드가 됨
HTML에서는 < p class="X" > 태그 속성이 있음
React.js에서는 충돌되기 때문에 className을 사용한다 (< p className="x" >)
class 클래스명{
변수 // 메서드 및 생성자 내에서만 선언 가능. this.변수
메서드
생성자
}
(3) 클래스 작성 후에는 반드시 객체 생성해야한다
var 변수 = new 클래스명();
let xxx = "setName";
class Person{
[xxx](name){}
}
(4) 메서드명 앞에 set/get 키워드를 지정하면 메서드가 아닌 변수처럼 동작한다
class Person{
get getName(){
return this.name;
}
p.getName;
(5) 생성자 (constructor)
자바 : 클래스명으로 생성자를 작성
오버로딩이 가능
JS : constructor 명으로 생성자를 작성
단 한 번만 지정 가능
(6) 상속 (inheritance)
class Cat extends Pet{
constructor(name,age,gender){
super(name, age); // 부모에서 초기화 필수
this.name=name; // 에러발생
this.gender=gender;
}
function fun(){
"1출력"
fun2(); function fun2(){ "2출력"} //1시간 작업
"3출력"
}
fun();
실행결과:
1출력
2출력
3출력 ( 1시간 이후에 출력됨 )
function fun(){
"1출력"
fun2(); //비동기 function fun2(){ "2출력"} //1시간 작업
"3출력"
}
fun();
실행결과:
1출력
3출력
( 1시간 이후에 출력됨 )
2출력
예>
#일반함수
function fun(){
}
#비동기 함수
function fun(){
return new Promise(함수);
}
예>
#비동기 함수
async function fun(){
"1출력"
await fun2(); // await 함수가 실행이 끝날 때까지 fun() 실행을 중지시킴
"2출력"
}
var result = fun(); // result값이 Promise 객체이다
Asynchronous Javascript And Xml
요청 : a태그, 새로고침, 명시적인 url 입력, form의 submit
웹브라우저 ------------------> 서버
<------------------
응답 : html
* 응답을 html로 받으면 웹브라우저의 전체 화면이 reloading 된다 (깜빡거림)
* 1MB 되는 전체 html을 서버에서 받음 (네트워크 부하가 심하다)
요청 : JS이용 (XMLHttpRequest 객체)
웹브라우저 ------------------> 서버
<------------------
응답 : JSON
예> {mesg:"logout"}
* 응답을 JSON으로 받으면 웹브라우저의 전체 화면이 reloading 안 됨 (깜빡임 X)
* 크기가 매우 작은 JSON 데이터를 받는다 (네트워크 부하가 적다)
(OLD 방법, 사용 안 함)
cf) React.js에서 매우 많이 사용되는 코드 패턴
1. arrow 함수
2. 객체분해할당(특히 JSON )
3. async, await 이용한 비동기처리
==> 서버와 연동시 필수
fetch() 함수
==> 서버에 요청하는 함수
==> 일반적으로 async, await와 같이 사용.
백티 사용
모듈
Array객체 메서드