es6 가 져 오기 내 보 내기 궁금 하 세 요?자, 내 가 알려 줄 게 ~

4528 단어
es6 가 져 오기 내 보 내기
오늘 es6 가 져 오기 내 보 내기 에 대해 이야기 하 겠 습 니 다. es6 가 져 오기 내 보 내기 가 무엇 입 니까?그것 은 어떤 편리 한 점 이 있 습 니까?사실은 현재 의 ES6 는 모듈 화 를 가지 고 있 습 니 다. 우 리 는 import 와 export 가 브 라 우 저 에서 각 모듈 을 가 져 오고 내 보 낼 수 있 습 니 다. js 파일 은 js 모듈 을 대표 합 니 다.우선 에 스 6 모듈 화 에 대해 구체 적 으로 알 아 보 겠 습 니 다.
ES6 의 모듈 화 기본 규칙 이나 특징:
  • 각 모듈 은 한 번 만 불 러 오고 JS 는 한 번 만 실 행 됩 니 다. 다음 에 같은 디 렉 터 리 아래 같은 파일 을 다시 불 러 오 면 메모리 에서 직접 읽 습 니 다.하나의 모듈 은 하나의 예 또는 하나의 대상 이다.
  • 모든 모듈 에서 성명 한 변 수 는 국부 변수 로 전역 작용 역 을 오염 시 키 지 않 는 다.
  • 모듈 내부 의 변수 나 함 수 는 export 를 통 해 내 보 낼 수 있 습 니 다.
  • 한 모듈 은 다른 모듈 을 가 져 올 수 있다
  • export 키 워드 를 사용 하여 대상 을 내 보 냅 니 다.이 키 워드 는 무한 정 사용 할 수 있 습 니 다.
  • import 키 워드 를 사용 하여 다른 모듈 을 모듈 에 가 져 옵 니 다.임의의 모듈 을 가 져 오 는 데 사용 할 수 있 습 니 다.
  • 모듈 의 비동기 로드 지원;
  • 로드 모듈 에 프로 그래 밍 지원 을 제공 합 니 다.

  • ES6 모듈 은 주로 두 가지 기능 이 있 습 니 다. export 와 import export 는 이 모듈 변 수 를 대외 적 으로 출력 하 는 인터페이스 import 는 한 모듈 에 export 인 터 페 이 스 를 포함 한 다른 모듈 을 불 러 오 는 데 사 용 됩 니 다.즉, export 명령 을 사용 하여 모듈 의 대외 인 터 페 이 스 를 정의 한 후에 다른 JS 파일 은 import 명령 을 통 해 이 모듈 을 불 러 올 수 있 습 니 다. 모듈 하 나 는 독립 된 파일 입 니 다.이 파일 내부 의 모든 변 수 는 외부 에서 가 져 올 수 없습니다.모듈 내부 의 변 수 를 외부 에서 읽 기 를 원한 다 면 export 키 워드 를 사용 하여 이 변 수 를 출력 해 야 합 니 다.다음은 JS 파일 입 니 다. export 명령 출력 변 수 를 사용 합 니 다. / pb. js / 내 보 내기 상수 export const sqrt = Math.sqrt; / 내 보 내기 함수 ` export function square (x) {
    return x * x;

    } ` / 내 보 내기 함수 ` export function diag (x, y) {
    return sqrt(square(x) + square(y));

    }`
    //main.js import { square, diag } from '.Pb'; console.log(square(11)); // 121 console.log(diag(4, 3)); // 5
    이 예 는 lib. js 파일 에서 export {인터페이스} 을 사용 하여 인 터 페 이 스 를 내 보 냅 니 다. 대괄호 의 인터페이스 이름 은 위 에서 정의 한 변수 이 고 export 에서 내 보 낸 함수 나 변 수 를 직접 정의 합 니 다.
    입력 한 변 수 를 위해 이름 을 다시 지 으 려 면 import 명령 은 as 키 워드 를 사용 하여 입력 한 변 수 를 이름 을 바 꿉 니 다.import { lastName as surname } from '.Pb';
    import 명령 은 향상 효과 가 있 습 니 다. 전체 모듈 의 머리 로 올 라 가 먼저 실 행 됩 니 다.foo(); import { foo } from 'my_module';
    또 하나의 내 보 내기 방법 이 있 습 니 다. 기본적으로 내 보 내기 방식 은 변수의 이름 을 알 필요 가 없습니다. 익명 으로 개 발 된 인 터 페 이 스 를 export 에 직접 내 보 내 는 것 과 같 습 니 다.js 모듈 파일 이 하나의 기능 만 있다 면 export default 로 내 보 낼 수 있 습 니 다.
    import 는 실제로 무엇 을 했 습 니까?
    ES6 는 모듈 로드 과정의 세부 사항 을 최종 실현 에 의 해 정의 하고 모듈 이 실행 하 는 다른 부분 은 규범 에서 상세 하 게 정의 합 니 다.JS 엔진 에 모듈 을 실행 하 라 고 통지 할 때 다음 네 가지 절차 에 따라 실 행 됩 니 다.
  • 문법 해석: 모듈 소스 코드 를 읽 고 문법 오 류 를 검사 합 니 다.
  • 로드: 가 져 온 모든 모듈 을 재 귀적 으로 불 러 옵 니 다.이것 도 바로 표준화 되 지 않 은 부분 이다.
  • 연결: 새로 불 러 온 모듈 을 만 날 때마다 역할 영역 을 만 들 고 모듈 에 설 명 된 모든 바 인 딩 을 이 역할 영역 에 채 웁 니 다. 다른 모듈 에서 가 져 온 내용 을 포함 합 니 다.
  • 코드 에 import {cake} from "paleo" 라 는 문구 가 있 으 면 "paleo" 모듈 에서 "cake" 를 내 보 내지 않 으 면 오류 가 발생 합 니 다.이것 은 정말 야단났다. 너 는 모듈 의 코드 를 곧 실행 할 것 이다. 모두 cake 가 일 으 킨 사고 이다!
  • 실행 시: 최종 적 으로 새로 불 러 온 모듈 마다 모든 문 구 를 실행 합 니 다.이 때 가 져 오 는 과정 이 끝 났 기 때문에 import 성명 이 있 는 코드 를 실행 할 때... 아무 일 도 일어나 지 않 았 습 니 다!

  • 정적 vs 동적: 규칙 및 파 격 적 인 방법
    자 바스 크 립 트 는 동적 언어 로 서 놀 라 운 정적 모듈 시스템 을 얻 었 다.
  • 모듈 의 가장 바깥쪽 역할 영역 에서 만 import 와 export 를 사용 할 수 있 습 니 다. 조건문 에서 사용 할 수 없고 함수 역할 영역 에서 import 를 사용 할 수 없습니다.
  • 내 보 낸 모든 식별 자 는 원본 코드 에서 이름 을 명확 하 게 내 보 내야 합 니 다. 코드 를 만들어 서 배열 을 옮 겨 다 니 고 데이터 로 구동 하 는 방식 으로 이름 을 내 보 낼 수 없습니다.
  • 모듈 대상 이 동결 되 었 기 때문에 모듈 대상 을 해 킹 하고 poly fill 스타일 의 새로운 기능 을 추가 할 수 없습니다.
  • 한 모듈 의 모든 의존 은 모듈 코드 가 실행 되 기 전에 완전히 불 러 오고 해석 하 며 일찍 연결 해 야 합 니 다. import 를 통 해 필요 에 따라 게 으 름 을 피 우 는 문법 은 존재 하지 않 습 니 다.
  • import 모듈 에서 발생 한 오 류 는 오류 복구 메커니즘 이 없습니다.하나의 app 은 수백 개의 모듈 을 포함 할 수 있 습 니 다. 한 모듈 이 불 러 오 거나 연결 되 지 않 으 면 모든 모듈 이 실행 되 지 않 습 니 다. 또한 try / catch 코드 블록 에서 import 의 오류 정 보 를 포착 할 수 없습니다.(위 에서 설명 한 본 의 는 시스템 이 정적 이 고 웹 팩 은 컴 파일 할 때 그 오 류 를 감지 할 수 있다 는 것 이다.)
  • 모듈 에 의존 하기 전에 다른 코드 를 실행 하 는 갈 고 리 를 지원 하지 않 습 니 다. 이것 은 모듈 의 의존 로드 과정 을 제어 할 수 없다 는 것 을 의미 합 니 다.

  • 현재 편집기 로 es6 브 라 우 저 를 만 드 는 것 은 지원 되 지 않 습 니 다. es5 로 번역 하고 node 로 효 과 를 실현 할 수 있 습 니 다.
    var gulp=require("gulp");
    var watch=require("gulp-watch");
    var babel=require("gulp-babel");
    gulp.task("babel",function(){
       gulp.src("./js/*.js")
       .pipe(babel({
           presets:["es2015"]
       }))
       .pipe(gulp.dest("./dist/js"));
    });
    gulp.task("watch",function(){
    gulp.watch("./js/*.js",["babel"]);
    })

    좋은 웹페이지 즐겨찾기