require 和 import 的區別?

require 和 import 的區別?

遵循的規範不一樣

1.require/exports是CommonJS的一部分npm

2.import/export是ES6新規範bash

出現時間不一樣

CommonJS 做爲 Node.js 的規範,一直沿用至今。因爲 npm 上 CommonJS 的類庫衆多,以及 CommonJS 和 ES6 之間的差別,Node.js 沒法直接兼容 ES6。因此現階段 require/exports 仍然是必要且是必須的。ui

形式不一樣

require/exports 的用法只有如下三種:spa

const fs = require('fs');
 exports.fs = fs;
 module.exports = fs;
複製代碼

import/export的寫法就多種多樣code

import fs from 'fs';
import {default as fs} from 'fs';
import * as fs from 'fs';
-----------------------------
export default fs;
export const fs;
export * from 'fs';
複製代碼

本質上的不一樣

1.CommonJS仍是ES6 Module 輸出均可以當作是一個具有多個屬性或者方法的對象;對象

2.default 是ES6 Module所獨有的關鍵字,export default 輸出默認的接口對象,import from 'fs'可直接導入這個對象;接口

3.ES6 Module中導入模塊的屬性或者方法是強綁定的,包括基礎類型;而 CommonJS 則是普通的值傳遞或者引用傳遞。string

相關文章
相關標籤/搜索