oracle中instr與like的區別
1、require 和import 的區別
node程式設計中最重要的思想就是模組化,import 和 require 都是被模組化所使用。在 ES6 當中,用 export 匯出介面,用 import 引入模組。但是在 node 模組中,使用module.exports匯出介面,使用require 引入模組。
兩者的區別如下:
遵循規範:
- require 是 AMD 規範引入方式
- import是 ES6 的一個語法標準,如果要相容瀏覽器的話必須轉化成 ES5 的語法
呼叫時間:
- require是執行時呼叫,所以require理論上可以運用在程式碼的任何地方
- import是編譯時呼叫,所以必須放在檔案開頭
本質:
- require 是賦值過程。module.exports後面的內容是什麼,require的結果就是什麼,比如物件、數字、字串、函式等,然後再把require的結果賦值給某個變數,它相當於module.exports的傳送門
- import 是解構過程,但是目前所有的引擎都還沒有實現import,我們在node中使用babel支援ES6,也僅僅是將ES6轉碼為ES5再執行,import語法會被轉碼為require
就目前來說,所有的引擎都還沒有實現import,我們在node中使用babel支援ES6,也僅僅是將ES6轉碼為ES5再執行,import語法會被轉碼為require。這也是為什麼在模組匯出時使用module.exports
2、require() | exports 的用法
通過require引入基礎資料型別時,屬於複製該變數。通過require引入複雜資料型別時,屬於淺拷貝該物件。
2.1、匯入模組 require() 的用法
require() 函式用於在當前模組中載入別的模組。在函式內寫入模組的路徑即可(相對路徑和絕對路徑都行)
var foo1 = require('./foo'); // .js 副檔名可忽略 var foo2 = require('./foo.js'); var data = require('./data.json'); //不僅僅是 JS 檔案,也可以是其他檔案
require 相當於module.exports的傳送門,module.exports後面的內容是什麼,require的結果就是什麼,比如物件、數字、字串、函式等,然後再把require的結果賦值給某個變數。
require理論上可以運用在程式碼的任何地方,甚至不需要賦值給某個變數之後再使用,比如:
require('./a')(); //假設a模組是一個函式,此時將立即執行a模組函式 var data = require('./a').data; //假設a模組匯出的是一個物件 var a = require('./a')[0]; //假設a模組匯出的是一個數組
2.2、輸出介面 exports 的用法
exports 物件是當前模組的匯出物件,用於匯出該模組的方法或屬性。
別的模組通過 require() 函式引用別的模組時實際上得到的就是別的模組的 exports 物件:
exports.hello = function () { console.log('Hello World!'); };
匯出模組的方法或者屬性可以直接用 exports,也可以使用 module.exports 來進行匯出。通過module
物件可以訪問到當前模組的一些相關資訊,但最多的用途是替換當前模組的匯出物件。
module.exports = function () { console.log('Hello World!'); };
實際上,exports是module.exports的一個引用,module.exports 指向的就是exports。
console.log(exports === module.exports); //輸出true
3、import | export 的用法
import 是編譯時執行的(require是執行時的),它必須放在檔案開頭,而且使用格式也是確定的,不容置疑。它不會將整個模組執行後賦值給某個變數,而是隻選擇import的介面進行編譯,這樣在效能上比require好很多。
import | export 遵循 ES6 規範,支援編譯時靜態分析,便於JS引入巨集和型別檢驗。動態繫結。寫法比較多:
import fs from 'fs' import {default as fs} from 'fs' import * as fs from 'fs' import {readFile} from 'fs' import {readFile as read} from 'fs' import fs, {readFile} from 'fs' export default fs export const fs export function readFile export {readFile, read} export * from 'fs'
具體可參考:https://www.cnblogs.com/wenxuehai/p/11312851.html#_label1_1