欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS中Require與Import 區(qū)別對比分析

 更新時間:2023年03月02日 11:34:27   作者:大眾浴池之大眾  
這篇文章主要為大家介紹了JS中Require與Import 區(qū)別對比分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

require 和 import對比區(qū)別

在 JavaScript 中,require 和 import 都是用來導(dǎo)入模塊的。require 是 Node.js內(nèi)置的方法,而 import 是一個 ES6 標(biāo)準(zhǔn)的關(guān)鍵字。

require是同步(synchronous)的,會阻塞腳本的執(zhí)行,import是異步(asynchronous)的,加載過程不會阻塞腳本的執(zhí)行。

其實(shí)他們最大的區(qū)別,require只能對整個模塊進(jìn)行加載,而import可以選擇性的加載被拆分導(dǎo)出(individual export)的模塊。

拆分導(dǎo)出(individual export) 可以是 value, funcition, object

舉個例子,如果我們有一個模塊叫 myModule, 你可以通過 require 導(dǎo)入整個模塊:

const myModule = require('myModule');

如果想使用其中的方法或值,需要使用 . 符號去調(diào)用:

const myFunction = require('myModule').myFunction;

再看看import, 如果想導(dǎo)入整個模塊:

import * as myModule from 'myModule';

如果想導(dǎo)入指定內(nèi)容:

import {myFunction} from 'myModule';

相比較而言,import更靈活,也是在require之后ES推出的關(guān)鍵字,理論上import會全面的取替require。不過在Node.js還是會支持require,可以根據(jù)需求去選擇兩種語法。

import()

像前面說的,最大的優(yōu)勢是可以不導(dǎo)入整個模塊,而是按需導(dǎo)入。減少代碼量的同時,還增加了可讀性,下面是具體的例子:

// moduleA.js
export const x = 1;
export const y = 2;
// moduleB.js
import { x, y } from './moduleA';
console.log(x); // outputs 1
console.log(y); // outputs 2

Webpack有內(nèi)置的緩存機(jī)制來緩存通過import關(guān)鍵字加載的模塊。Rollup和其他模塊也都有類似的功能。

require()

在Node.js的上下文中,require() 是一個內(nèi)置的方法,會讀取一個JS文件,并執(zhí)行,然后返回一個導(dǎo)出的對象:

// app.js
const _ = require('lodash');
const arr = [1, 2, 3];
const sum = _.sum(arr);
console.log(sum); // outputs 6

需要注意??的是 require() 是同步代碼,在模塊加載完成之前會阻塞代碼的執(zhí)行。

還有一點(diǎn),require() 可以利用緩存讓模塊只加載一次,即便很多文件都加載了這個模塊。意思是說當(dāng)用require加載了一個模塊,Node.js會去檢查這個模塊是否已經(jīng)被加載和緩存,如果是的話,就直接返回緩存的內(nèi)容。

英文原文鏈接(作者: Alex Ivanovs)

以上就是JS中Require與Import 區(qū)別對比分析的詳細(xì)內(nèi)容,更多關(guān)于JS Require對比Import區(qū)別的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)簡單表格

    微信小程序?qū)崿F(xiàn)簡單表格

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)簡單表格,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 前端實(shí)現(xiàn)讀取word文件并將其原樣式展示的幾種方案

    前端實(shí)現(xiàn)讀取word文件并將其原樣式展示的幾種方案

    在前端直接讀取并原樣展示W(wǎng)ord文檔是一個相對復(fù)雜的任務(wù),因?yàn)閃ord文檔的格式(如.doc或.docx)與Web技術(shù)棧使用的格式(HTML、CSS)不兼容,這篇文章主要給大家介紹了關(guān)于前端實(shí)現(xiàn)讀取word文件并將其原樣式展示的幾種方案,需要的朋友可以參考下
    2024-08-08
  • JavaScript Array實(shí)例方法flat的實(shí)現(xiàn)

    JavaScript Array實(shí)例方法flat的實(shí)現(xiàn)

    flat() 方法用于將一個嵌套多層的數(shù)組進(jìn)行扁平,返回新數(shù)組,它不會改變原始數(shù)組, flat 方法在處理多維數(shù)組時非常有用,它可以讓數(shù)組操作變得更加靈活和簡潔,本文給大家介紹了JavaScript Array實(shí)例方法flat的實(shí)現(xiàn),需要的朋友可以參考下
    2024-03-03
  • js焦點(diǎn)文字滾動效果代碼分享

    js焦點(diǎn)文字滾動效果代碼分享

    這篇文章主要介紹了js焦點(diǎn)文字滾動效果,功能實(shí)現(xiàn)非常簡單,推薦給大家,有需要的小伙伴可以參考下。
    2015-08-08
  • 使用JavaScript獲取Django模板指定鍵值數(shù)據(jù)

    使用JavaScript獲取Django模板指定鍵值數(shù)據(jù)

    這篇文章主要介紹了使用JavaScript獲取Django模板指定鍵值數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • JS 實(shí)現(xiàn)圖片直接下載示例代碼

    JS 實(shí)現(xiàn)圖片直接下載示例代碼

    本文為大家詳細(xì)介紹下使用JS實(shí)現(xiàn)圖片直接下載,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-07-07
  • js實(shí)現(xiàn)百度淘寶搜索功能

    js實(shí)現(xiàn)百度淘寶搜索功能

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)百度淘寶搜索功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • js實(shí)現(xiàn)整體縮放頁面適配移動端

    js實(shí)現(xiàn)整體縮放頁面適配移動端

    這篇文章主要介紹了js實(shí)現(xiàn)整體縮放頁面適配移動端,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • javascript 閃爍的圣誕樹實(shí)現(xiàn)代碼

    javascript 閃爍的圣誕樹實(shí)現(xiàn)代碼

    用js實(shí)現(xiàn)非常漂亮的帶閃爍效果的圣誕樹代碼。很佩服作者的想法。效果如下圖。
    2009-12-12
  • 學(xué)習(xí)JavaScript設(shè)計模式(多態(tài))

    學(xué)習(xí)JavaScript設(shè)計模式(多態(tài))

    這篇文章主要帶領(lǐng)大家學(xué)習(xí)JavaScript設(shè)計模式,其中重點(diǎn)介紹多態(tài),舉例說明多態(tài)的思想,對多態(tài)進(jìn)行詳細(xì)剖析,感興趣的小伙伴們可以參考一下
    2015-11-11

最新評論