[03/28] TIL

송승찬·2020년 3월 28일
0

es6 module

  1. module.exports + require
    module.exports = func or { } + const foo = require('./filename')
  2. scripts src통해 불러온 파일들은 전역객체를 공유하기에 다른 파일에 있더라도 같은 변수의 이름을 공유하는 것이 있다면 서로에게 영향을 끼친다.
    3.node는 commonJS방식의 모듈방식 채택, 모듈은 각각의 파일 안에서 한정되는 스코프를 가지기에 특정 변수가 전역 변수로 사용될 일이 없다.

ES6 모듈 기능을 사용하지 않으면 분리된 자바스크립트 파일에 독자적인 스코프를 갖지 않고 하나의 전역을 공유한다.
ES6 모듈은 파일 자체의 스코프를 제공한다. 즉, ES6 모듈은 독자적인 모듈 스코프를 갖는다. 따라서, 모듈 내에서 var 키워드로 선언한 변수는 더 이상 전역 변수가 아니며 window 객체의 프로퍼티도 아니다.

  1. export const + import { foo as Seoul } from './Seoul.js' (js꼭 붙여줘야)
    export default function () {}=>default사용시 변수명 안 붙여야 한다
    import as Seoul from './Seoul.js';
    사용시에는 import되는 대상들이 Seoul 객체의 프로퍼티로 들어가있다

참고:https://poiemaweb.com/es6-module

URL.createObjectURL() 정적 메서드는 주어진 객체를 가리키는 URL을 DOMString으로 반환합니다. 해당 URL은 자신을 생성한 창의 document가 사라지면 함께 무효화됩니다.

fetch

//request할 때 바디를 통해 전달할 값들은 JSON.stringify()를 통해 보내줘야 오류 안날 수 있다.
//데이터를 전송하는 경우에는 다음처럼 body에 값을 추가
myGoal이라는 이름으로 'Seoul_Lite'라는 값을 서버에 전달, body는 JSON.stringify()를 사용하여 문자열로 변환하여 전달합니다.
JSON
fetch(url, {
method: 'POST',
body: JSON.stringify({ myGoal: 'Seoul_Lite' })
}).then(function(response) {
...
});

공부할 거리 for of , for in , async ,fetch ,http , ajax

-fetch는 최소 2개의 then으로 연결되어 있어야 한다.
네트워크 통신에서 request / response는 body를 가지고 있다.
-body타입

  • ArrayBuffer
    ArrayBufferView (Uint8Array같은 TypedArray)
    Blob/File
    문자열
    URLSearchParams
    FormData

-Body를 다루기위해서 제공되는 Method가 있다.

  • arrayBuffer()
    blob()
    json()
    text()
    formData()
profile
superfly

0개의 댓글