이번에 프론트 개발자들과 협업하게 되면서 자바 스크립트에 대해서
정리해야할 필요성을 느끼게 되었습니다.
(이전에 개인 프로젝트를 하면서 주먹구구식으로 했던 것이 계속 마음 속에 남아 있기도 하고)
기억해둬야할 것을 중심으로 정리하겠습니다.
var은 같은 Javascript안에 같은 이름의 변수를 선언해도 오류가 나지 않습니다.
따라서 권장하지 않는 방법입니다.
let은 변수를 선언하고 값을 고칠 수 있으나 const는 고칠 수 없습니다.
따라서 const는 상수를 선언할 때 사용합니다.
Java 기준에서 '=='가 Javascript에서는 비교할 때 타입을 비교하지 않습니다.
따라서 '10'과 10을 같다고 생각합니다.
'10' == 10 은 true가 반환됩니다.
그러나 '10'===10은 false를 반환합니다.
타입까지의 비교는 ===를 사용합니다.
let x =3
let y = 10
console.log(y ** x) // 1000
몇 승을 의미합니다.
in은 키 값이 존재하는지
혹은 그 index가 존재하는지
그리고 그 attribute가 존재하는지를 나타냅니다.
위와 같이 선언시 키와 value로 들어갑니다.
object의 메소드 keys(), entries(), values()
브라우저는 주소창이나 HTML의 form 태크 또는 a 태크를 통해 HTTP 요청 전송 기능을 기본 제공합니다. 자바스크립트를 이용하여 HTTP 요청을 전송하려면 XMLHttpRequest 객체를 사용해야 합니다. Web API인 XMLHttpRequest 객체는 HTTP 요청 전송과 HTTP 응답 수신을 위한 다양한 메서드와 프로퍼티를 제공합니다.
const xhr = new XMLHttpRequest();
// 0. 객체 셍성
const xhr = new XMLHttpRequest();
// 1. HTTP 요청 초기화 & 비동기 방식으로 Request를 오픈한다
xhr.open('GET', '/users');
// 2. HTTP 요청 헤더 설정 (MIME 타입 지정: json)
xhr.setRequestHeader('content-type', 'application/json');
// 3. Request를 전송한다
xhr.send();
Ajax 는 프로그램 언어는 아닙니다.
JavaScript 의 라이브러리 중 하나입니다.
브라우저가 가지고 있는 XMLHttpRequest 객체를 이용하여 페이지를 새로고침 하지 않고, 페이지의 일부만을 위한 데이터를 로드하는 기법입니다.
이름에 XML 이 들어가지만, 데이터를 일반 텍스트 또는 JSON 으로 전송하는 것이 일반적입니다.
Ajax는 브라우저에 내장된 XMLHttpRequest 객체를 사용하여 웹서버에서 데이터를 요청하고,
JavaScript 와 HTML DOM 을 이용해 받아온 데이터를 보여주거나 이용한다.
XMLHttpRequest가 아닌 JQuery를 통해 쉽게 구현 가능합니다.
XMLHttpRequest(XHR)를 사용한 코드
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() { // 요청에 대한 콜백
if (xhr.readyState === xhr.DONE) { // 요청이 완료되면
if (xhr.status === 200 || xhr.status === 201) {
console.log(xhr.responseText);
} else {
console.error(xhr.responseText);
}
}
};
xhr.open('GET', 'https://localhost:3000'); // 메소드와 주소 설정
xhr.send(); // 요청 전송
// xhr.abort(); // 전송된 요청 취소
Jquery를 사용한 코드
var serverAddress = 'https://localhost:3000';
// jQuery의 .get 메소드 사용
$.ajax({
url: serverAddress,
type: 'GET',
success: function onData (data) {
console.log(data);
},
error: function onError (error) {
console.error(error);
}
});
https://velog.io/@corone_hi/Ajax-JSON-XMLHttpRequest
https://cocoon1787.tistory.com/756
https://www.youtube.com/watch?v=NQZZyVM8ksw