国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require require和import區(qū)別

這篇具有很好參考價(jià)值的文章主要介紹了(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require require和import區(qū)別。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

導(dǎo)出簡介(里面有小細(xì)節(jié)請(qǐng)仔細(xì)閱讀)

?module.exports與exports

1.該js文件要導(dǎo)出的值即為test

?2.該js文件要導(dǎo)出的值即為test1和test2

3. 注意這里我是先給module.exports.test2賦值,然后給module.exports賦值,因此{(lán)test1}覆蓋了原來的test2,因此module.exports中只有test1

?4. 該js文件要導(dǎo)出的值即為test2

5. 注意這里(注意點(diǎn)),module.exports ={test1};改變了module.exports指向的引用,exports還指向之前的module.exports引用,因此無論exports.test2 = test2;在哪里執(zhí)行都不能改變?cè)搄s文件索要暴露的值。所以如果要改變module.exports指向的引用,就不要使用exports

export與export default?

1.根據(jù)輸出可知:export default test1;等價(jià)于exports.default = test1; export {test2};等價(jià)于exports.test2 = test2;

(坑)export {}這個(gè)語法比較特殊,{}花括號(hào)中,必須是提前定義好的

(1)正確

(2)錯(cuò)誤

?2.可見:要想使用export或者export defalut 就不能改變module.exports指向的引用

?(坑)上面第七行代碼進(jìn)行了,執(zhí)行module的指向更改,后續(xù)如果引入的話,就只會(huì)引入module.exports最新的一次指向

?導(dǎo)入簡介

require

import

(注意)如果同時(shí)存在自定義的和default那么impor的時(shí)候需要注意

export defalut 就是默認(rèn)輸出的值,在使用import時(shí),要想使用這個(gè)默認(rèn)的值就需要只獲取一個(gè)值(不加大括號(hào),變量名隨便寫)

require和import區(qū)別

區(qū)別1:模塊加載的時(shí)間

區(qū)別2:模塊的本質(zhì)

區(qū)別3:嚴(yán)格模式

ES6 模塊之中,頂層的 this 指向 undefined ,即不應(yīng)該在頂層代碼使用 this


導(dǎo)出簡介(里面有小細(xì)節(jié)請(qǐng)仔細(xì)閱讀)

變量的導(dǎo)出涉及到四個(gè)關(guān)鍵字module.exports與exports,export與export default,
其中module.exports與exports是符合CommonJS模塊規(guī)范的。
export與export default是es6用來導(dǎo)出模塊的。

?module.exports與exports

  • module是一個(gè)對(duì)象,代指的整個(gè)js文件,而他的exports屬性就是該js文件對(duì)外暴露的對(duì)象,只要是module.exports的屬性內(nèi)的值都能被訪問到(包括字符串,數(shù)字,對(duì)象,函數(shù))。
  • exports指向了module.exports就相當(dāng)于在js文件開頭添加了這樣一段代碼
  • var exports = module.exports;

總之我們只要記住一點(diǎn):module.exports指向的東西,就是我們要導(dǎo)出的東西

1.該js文件要導(dǎo)出的值即為test

	const test=1;
	module.exports ={test};
	console.log(module.exports)

(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

?2.該js文件要導(dǎo)出的值即為test1和test2

const test1="test1";
const test2= "test2";
module.exports ={test1};
module.exports.test2 =test2;
console.log(module.exports)

(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

3. 注意這里我是先給module.exports.test2賦值,然后給module.exports賦值,因此{(lán)test1}覆蓋了原來的test2,因此module.exports中只有test1

	const test1="s";
	const test2= "ss";
	const test3="sss";
	module.exports.test2 =test2;
	module.exports ={test1};
	console.log(module.exports)

?(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

?4. 該js文件要導(dǎo)出的值即為test2

	const test1="s";
	const test2= "ss";
	const test3="sss";
	exports.test2 = test2;
	console.log(module.exports)

?(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

5. 注意這里(注意點(diǎn)),module.exports ={test1};改變了module.exports指向的引用,exports還指向之前的module.exports引用,因此無論exports.test2 = test2;在哪里執(zhí)行都不能改變?cè)搄s文件索要暴露的值。所以如果要改變module.exports指向的引用,就不要使用exports

(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

export與export default?

  • 這兩個(gè)是es6的語法,在小程序中也是可以使用的
  • export與export default都是用來導(dǎo)出變量的,并且他們兩個(gè)作用與exports相同,只是語法不同
  • 二者同樣是給module.exports賦值,export可以賦多個(gè)值,export default只能賦一個(gè)值(只能使用一次).
  • export后面跟的是聲明或者語句,export default后面跟的是表達(dá)式

1.根據(jù)輸出可知:export default test1;等價(jià)于exports.default = test1; export {test2};等價(jià)于exports.test2 = test2;

	const test1="s";
	const test2= "ss";
	const test3="sss";
	export  default test1;
	export {test2};
	export const test4="ssss";
	console.log(module.exports)

(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

(坑)export {}這個(gè)語法比較特殊,{}花括號(hào)中,必須是提前定義好的

(1)正確

const test1 = "test1";
export {
	test1//這種可以
};
console.log(module.exports)

(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

(2)錯(cuò)誤

export {
	test1:1
};
console.log(module.exports)

?(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

?2.可見:要想使用export或者export defalut 就不能改變module.exports指向的引用

	const test1="s";
	const test2= "ss";
	const test3="sss";
	const test4="ssss";
	export  default test1;
	export {test2};
	module.exports ={test3};//這里進(jìn)行了指向更改
	export {test4};
	console.log(module.exports)

?(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

?(坑)上面第七行代碼進(jìn)行了,執(zhí)行module的指向更改,后續(xù)如果引入的話,就只會(huì)引入module.exports最新的一次指向

?導(dǎo)入簡介

我們知道了如何導(dǎo)出變量,那肯定還得知道如何導(dǎo)入
使用require 與import來導(dǎo)入
require 是是符合CommonJS模塊規(guī)范的。import是es6用來導(dǎo)出模塊的。
require 可以在js文件中的任意位置使用,import只能在文件開頭使用

require

require比較好理解,他可以直接獲取module.exports的對(duì)象,進(jìn)而使用其中的屬性和方法

//test.js中
const test1="s";
const test2= "ss";
const test3="sss";
const test4="ssss";
export  default test1;
export {test2};
exports.test3=test3;
module.exports.test4=test4;
//引用的文件中
var test = require("../../utils/test.js");
console.log(test)

(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

import

?import是直接獲取module.exports對(duì)象的屬性和方法

(注意)如果同時(shí)存在自定義的和default那么impor的時(shí)候需要注意

方法1、方法2、方法3都在下面的代碼里面

	//test.js中
	const test1="s";
	const test2= "ss";
	const test3="sss";
	const test4="ssss";
	export  default test1;//導(dǎo)出默認(rèn)
	export {test2};
	exports.test3=test3;
	module.exports.test4=test4;
	//引用的文件中,import在文件開頭
    //情況1(用法)
	import {test2,test3,test4} from "../../utils/test.js"http://這種情況下對(duì)test2 test3 test4進(jìn)行單獨(dú)導(dǎo)出
    //情況2(用法)
    import test0 from "../../utils/test.js"http://這種情況下只對(duì)module.exports中的default的值單獨(dú)導(dǎo)出并且賦值給test0
    //情況3(用法)
    import * as all from "../../utils/test.js"http://這種情況下將module.exports的所有值都付給all

export defalut 就是默認(rèn)輸出的值,在使用import時(shí),要想使用這個(gè)默認(rèn)的值就需要只獲取一個(gè)值(不加大括號(hào),變量名隨便寫)

	//test.js中
	const test1="s";
	export  default test1;
	//引用的文件中,import在文件開頭
	import SuiBianXie from "../../utils/test.js"
	console.log(SuiBianXie)

(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require
require和import區(qū)別

require和import區(qū)別

區(qū)別1:模塊加載的時(shí)間

require:運(yùn)行時(shí)加載
import:編譯時(shí)加載(效率更高)【由于是編譯時(shí)加載,所以import命令會(huì)提升到整個(gè)模塊的頭部】

區(qū)別2:模塊的本質(zhì)

require:模塊就是對(duì)象,輸入時(shí)必須查找對(duì)象屬性
import:ES6 模塊不是對(duì)象,而是通過 export 命令顯式指定輸出的代碼,再通過 import 命令輸入(這也導(dǎo)致了沒法引用 ES6 模塊本身,因?yàn)樗皇菍?duì)象)。由于 ES6 模塊是編譯時(shí)加載,使得靜態(tài)分析成為可能。有了它,就能進(jìn)一步拓寬 JavaScript 的語法,比如引入宏(macro)和類型檢驗(yàn)(type system)這些只能靠靜態(tài)分析實(shí)現(xiàn)的功能。

區(qū)別3:嚴(yán)格模式

CommonJs模塊和ES6模塊的區(qū)別:
(1)CommonJs模塊默認(rèn)采用非嚴(yán)格模式
(2)ES6 的模塊自動(dòng)采用嚴(yán)格模式,不管你有沒有在模塊頭部加上 “use strict”;
(3)CommonJS 模塊輸出的是一個(gè)值的拷貝,ES6 模塊輸出的是值的引用文章來源地址http://www.zghlxwxcb.cn/news/detail-432619.html

ES6 模塊之中,頂層的 this 指向 undefined ,即不應(yīng)該在頂層代碼使用 this

到了這里,關(guān)于(區(qū)別、詳解、使用)module.exports與exports,export與export default,import 與require require和import區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • export default 和 export之間的區(qū)別

    export default 和 export之間的區(qū)別

    export 、export default,都屬于ES6里面的語法 1. export與export default均可用于導(dǎo)出常量、函數(shù)、文件、模塊等 2. 你可以在其它文件或模塊中通過import+(常量 | 函數(shù) | 文件 | 模塊)名的方式,將其導(dǎo)入,以便能夠?qū)ζ溥M(jìn)行使用 3. 在一個(gè)文件或模塊中,export、import可以有多個(gè),export def

    2023年04月09日
    瀏覽(28)
  • vue中 export default 與 export 寫法的區(qū)別

    1.1、定義函數(shù) d.js 1.2、使用 a.js export default 命令用于指定模塊的默認(rèn)輸出。一個(gè)模塊只能有一個(gè)默認(rèn)輸出,因此 export default 命令 只能使用(導(dǎo)入)一次 2.1、定義函數(shù) d.js 2.1、使用 1)使用方法1:一次性導(dǎo)入所有函數(shù) a.js 這種寫法 test() 輸出的 dic對(duì)象與 export default 是一樣的,

    2024年04月24日
    瀏覽(21)
  • 【ES6】require、export和import的用法

    【ES6】require、export和import的用法

    在JavaScript中,require、export和import是Node.js的模塊系統(tǒng)中的,用于處理模塊間的依賴關(guān)系。 1、require:這是Node.js中引入模塊的方法。當(dāng)你需要使用其他模塊提供的功能時(shí),可以使用require來引入該模塊。例如: common.js 運(yùn)行 node .demo.js ,輸出: 在上面的代碼中,我

    2024年02月10日
    瀏覽(25)
  • 解決export ‘default‘ (imported as ‘xxx‘) was not found in ‘xxx‘

    解決export ‘default‘ (imported as ‘xxx‘) was not found in ‘xxx‘

    今天寫代碼時(shí)出現(xiàn)了問題,記錄一下,源代碼如下 編譯時(shí)警告 試了很久最后發(fā)現(xiàn)是import語法問題 ?

    2024年02月04日
    瀏覽(24)
  • Module的語法, JS中的 export 和 import

    在ES6之前, 社區(qū)制定了一些模塊加載方案, 最主要的有CommonJS和AMD兩種. 前者用于服務(wù)器,后者, 用于瀏覽器 ES6模塊的 設(shè)計(jì)思想是盡量靜態(tài)化, 使得編譯時(shí)就能確定模塊的依賴關(guān)系 ES6模塊不是對(duì)象, 而是 通過export命令顯示指定輸出的代碼,再通過import命令輸入. 上面代碼的實(shí)質(zhì)是從

    2024年02月02日
    瀏覽(30)
  • ES6模塊介紹—module的語法import、export簡單介紹及用法

    模塊功能主要由兩個(gè)命令構(gòu)成:export和import。export命令用于規(guī)定模塊的對(duì)外接口,import命令用于輸入其他模塊提供的功能。 一個(gè)模塊就是一個(gè)獨(dú)立的文件。該文件內(nèi)部的所有變量,外部無法獲取。如果你希望外部能夠讀取模塊內(nèi)部的某個(gè)變量,就必須使用export輸出該變

    2024年02月05日
    瀏覽(20)
  • 解決vite打包出現(xiàn) “default“ is not exported by “node_modules/...問題

    vue3+ts+vite項(xiàng)目打包 報(bào)錯(cuò)意思是導(dǎo)入的js文件沒有默認(rèn)導(dǎo)出 有兩種方法 1.修改node_modoules下的文件源碼 在前面加上expoert default 為這個(gè)js文件添加一個(gè)默認(rèn)導(dǎo)出 不太推薦這個(gè)方法,雖然比較簡單 2.安裝 @rollup/plugin-commonjs 插件, vite-plugin-require-transform 插件 @rollup/plugin-commonjs可以將

    2024年02月10日
    瀏覽(26)
  • 引入echars5.0報(bào)錯(cuò)“export ‘default‘ (imported as ‘echarts‘) was not found in ‘echarts‘解決方案

    引入echars5.0報(bào)錯(cuò)“export ‘default‘ (imported as ‘echarts‘) was not found in ‘echarts‘解決方案

    前言:老版本的echars樣式與新版本的組件美觀度相差巨大,以美觀為主所以把組件升級(jí)成了echars5.0,結(jié)果報(bào)錯(cuò)了【\\\"export ‘default’ (imported as ‘echarts’) was not found in ‘echarts’】! 直接報(bào)錯(cuò):\\\"export ‘default’ (imported as ‘echarts’) was not found in \\\'echarts’ 新版本的echarts引入方式

    2024年02月03日
    瀏覽(21)
  • 打包報(bào)錯(cuò)Error: ‘default‘ is not exported by node_modules/qs/lib/index.js

    問題描述: 當(dāng)我們?cè)谑褂胷ollup編譯es6時(shí),可能會(huì)遇到以下報(bào)錯(cuò)問題 解決方案: 安裝@rollup/plugin-commonjs插件 ? 最后,修改rollup.config.js文件中寫入以下代碼即可

    2024年02月16日
    瀏覽(29)
  • 為什么 export 導(dǎo)出一個(gè)字面量會(huì)報(bào)錯(cuò)而使用 export default 不會(huì)報(bào)錯(cuò)

    為什么 export 導(dǎo)出一個(gè)字面量會(huì)報(bào)錯(cuò)而使用 export default 不會(huì)報(bào)錯(cuò)

    其實(shí)總的來說就是 export 導(dǎo)出的是變量的句柄(或者說符號(hào)綁定、近似于 C 語言里面的指針,C++里面的變量別名),而 export default 導(dǎo)出的是變量的值。 需要注意的是:模塊里面的內(nèi)容只能在模塊內(nèi)部修改,模塊外部只能使用。esModule在語法層面做了一層淺層的保護(hù)(即將imp

    2024年02月04日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包