答案:二者的加載方式不一樣、規範不一樣jquery
第1、二者的加載方式不一樣,require 是在運行時加載,而 import 是在編譯時加載git
require('./a')(); // a 模塊是一個函數,當即執行 a 模塊函數github
var data = require('./a').data; // a 模塊導出的是一個對象web
var a = require('./a')[0]; // a 模塊導出的是一個數組 ======> 哪都行數組
import $ from 'jquery';瀏覽器
import * as _ from '_';服務器
import {a,b,c} from './a';函數
import {default as alias, a as a_a, b, c} from './a'; ======>用在開頭優化
第2、規範不一樣,require 是 CommonJS/AMD 規範,import 是 ESMAScript6+規範ui
第3、require 特色:社區方案,提供了服務器/瀏覽器的模塊加載方案。非語言層面的標準。只能在運行時肯定模塊的依賴關係及輸入/輸出的變量,沒法進行靜態優化。
import 特色:語言規格層面支持模塊功能。支持編譯時靜態分析,便於 JS 引入宏和類型檢驗。動態綁定。