被模組化所使用的import和require的區別

2021-09-28 23:57:10 字數 700 閱讀 7651

node程式設計中最重要的思想就是模組化,import和require都是被模組化所使用。

遵循規範

require 是 amd規範引入方式

import是es6的乙個語法標準,如果要相容瀏覽器的話必須轉化成es5的語法

呼叫時間

require是執行時呼叫,所以require理論上可以運用在**的任何地方

import是編譯時呼叫,所以必須放在檔案開頭

本質

require是賦值過程,其實require的結果就是物件、數字、字串、函式等,再把require的結果賦值給某個變數。

import是解構過程,但是目前所有的引擎都還沒有實現import,我們在node中使用babel支援es6,也僅僅是將es6轉碼為es5再執行,import語法會被轉碼為require。

載入方式

規範命令

特點執行時載入

commonjs/amd

require

社群方案,提供了伺服器/瀏覽器的模組載入方案。非語言層面的標準。只能在執行時確定模組的依賴關係及輸入/輸出的變數,無法進行靜態優化。

編譯時載入

esmascript6+

import

語言規格層面支援模組功能。支援編譯時靜態分析,便於js引入巨集和型別檢驗。動態繫結

模組化 import和export

關於js模組化的使用,大家肯定不陌生,現有的主要兩種 cmd和amd,還有一種相容cmd和amd寫法的umd。一般前端框架都支援amd,而node.js採用的是cmd的模組語法。但大部分瀏覽器不支援,相信以後瀏覽器肯定會逐步支援的。export 基本用法兩種 1直接匯出 export functio...

談談模組化的 require 和 import

一 區別 require是commonjs的規範,在node中實現的api,import是es的語法,由編譯器處理。所以import可以做模組依賴的靜態分析,配合webpack rollup等可以做treeshaking。commonjs匯出的值會複製乙份,require引入的是複製之後的值 引用型...

Python 模組化 import 語句介紹 一

import 模組1 模組2,模組3.os 頂級模組 os.path 非頂級模組 as 相當於重新命名 直譯器負責模組單獨載入,單獨初始化,生成乙個模組物件,當前作用域生成乙個同名識別符號,對映到模組物件上,然後就可以通過這個識別符號來訪問模組物件的資源。並不是直接引用模組,或把模組的原始碼載入到當...