摘要:是一個的核心模塊,提供常用函數的集合,用于彌補核心的功能過于精簡的不足。是一個將任意對象轉換為字符串的方法,通常用于調試和錯誤輸出。用于判斷是否為正則表達式,是返回,否則返回。
講講node常用工具util。 util是一個Node.js的核心模塊,提供常用函數的集合,用于彌補核心Javascript的功能過于精簡的不足。
util.inherits(constructor, superConstructor)是一個實現對象間繼承的函數。
JavaScript的面向對象特性是基于原型(如果不了解原型自己在去找找相關文章補習一下),與常用的基于類不同。JavaScript沒有提供對象繼承的語言級別特性,而是通過原型復制來實現的。
先說說uril.inherits的用法,示例:
const util = require("util") function Base() { this.name = "base" this.base = 1991 this.sayHello = function() { console.log("Hello " + this.name) } } Base.prototype.showName = function(){ console.log(this.name) } function Sub() { this.name = "Sub" } util.inherits(Sub,Base) const objBase = new Base() objBase.showName() objBase.sayHello() console.log(objBase) const objSub = new Sub() objSub.showName() console.log(objSub)
我們定義了一個基礎對象 Base 和一個繼承自 Base 的 Sub,Base 有三個在構造函數內定義的屬性和一個原型中定義的函數,通過util.inherits 實現繼承。運行結果如下:
可以看到,Sub僅僅繼承了Base在原型中定義的函數,而貢棗函數內部創造的Base屬性和sayHello函數都沒有被Sub繼承。同時,在原型中定義都屬性不回被console.log作為對象都屬性輸出。
util.inspect(object,[showHidden],[depth],[colors]):是一個將任意對象轉換為字符串的方法,通常用于調試和錯誤輸出。它至少接收一個參數object,即要轉換的對象。
showHidden是一個可選參數,如果值為true,將會輸出更多隱藏信息,
depth表示最大遞歸的層數,如果對象很復雜,你可以指定層數,如果不指定,默認會遞歸2層指定為null表示將不限遞歸層數完整的遍歷對象。如果color的值為true,輸出格式將會以ANSI顏色編碼,通常用于在終端現實出更漂亮的效果。
特別要指出的是,util.inspect并不會簡單地直接把對象轉換為字符串,即使該對象定義了toString方法也不會調用。
const util = require("util") function Person() { this.name = "Sifou" this.toString = function() { return this.name } } const obj = new Person() console.log(util.inspect(obj)) console.log(util.inspect(obj, true))
結果為:
util.isArray(object): 如果給定的參數object是一個數組返回true,否則返回false,用于判斷是否為數組。
var util = require("util"); util.isArray([]) // true util.isArray(new Array) // true util.isArray({}) // false
util.isRegExp(object) :用于判斷是否為正則表達式,是返回true,否則返回false。
var util = require("util"); util.isRegExp(/some regexp/) // true util.isRegExp(new RegExp("another regexp")) // true util.isRegExp({}) // false
util.isDate() :判斷是否為日期,是返回true,否則返回false。
var util = require("util"); util.isDate(new Date()) // true util.isDate(Date()) // false (without "new" returns a String) util.isDate({}) // false
util.inError(object) :如果給定的參數object是一個錯誤對象返回true,否則返回false。
var util = require("util"); util.isError(new Error()) // true util.isError(new TypeError()) // true util.isError({ name: "Error", message: "an error occurred" }) // false
更多詳情可以訪問 http://nodejs.org/api/util.html 了解詳細內容。
另外可以看看Underscore
Underscore.js是一個很精干的庫,壓縮后只有4KB。它提供了幾十種函數式編程的方法,彌補了標準庫的不足,大大方便了javaScript的編程。Underscore.js還可以用于Node.js。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/104594.html
摘要:在源碼中也可以看到,在執行之前動態的引入了這些解釋器模塊。因為認為如果你要使用,那么一定會有對應的依賴,這個模塊就是與同級的依賴,也就是說可以放心的進行,大致這樣的結構的位置在這里執行腳本以及一個相反的栗子 NPM是Node.js的包管理工具,隨著Node.js的出現,以及前端開發開始使用gulp、webpack、rollup以及其他各種優秀的編譯打包工具(大多數采用Node.js來實...
摘要:例如,的回調函數包含下面幾個參數轉換成之后,它的參數將會變成這樣一個對象通過內部符號處理非標準回調函數。 Nodejs 8 有一個新的工具函數 util.promisify()。他將一個接收回調函數參數的函數轉換成一個返回Promise的函數。 1、util.promisify()小例子 如果你給以下命令傳入文件路徑,則會輸出文件內容 // echo.js const {promis...
摘要:為指定事件注冊一個監聽器,接受一個字符串和一個回調函數。發射事件,傳遞若干可選參數到事件監聽器的參數表。為指定事件注冊一個單次監聽器,即監聽器最多只會觸發一次,觸發后立刻解除該監聽器。 1.Node.js 簡介 Node.js 其實就是借助谷歌的 V8 引擎,將桌面端的 js 帶到了服務器端,它的出現我將其歸結為兩點: V8 引擎的出色; js 異步 io 與事件驅動給服務器帶來極高...
摘要:那我們有沒有辦法不刷新頁面又能看到代碼的更新呢其實很簡單,因為已經內置了這樣的功能,我們只要配置下的注意到上面的代碼,我們增加了,讓開發環境有了熱更新的能力。 作者:Nicolas (滬江Web前端)本文為原創文章,轉載請注明作者及出處 本文的 webpack 代碼示例根據 webpack 2.7.0 編寫,并在 Mac 上正常運行。 去年一篇《在 2016 年學 JavaScript...
摘要:開發環境已經普及使用瀏覽器環境卻支持不好需要開發環境編譯內容很多,重點了解常用語法面試開發環境的使用重點語法的掌握問題模塊化如何使用,開發環境如何打包和普通構造函數有何區別的基本使用和原理總結一下其他常用功能模塊化的基本語法開發環境電腦有 ES6 開發環境已經普及使用 瀏覽器環境卻支持不好(需要開發環境編譯) 內容很多,重點了解常用語法 面試:開發環境的使用 + 重點語法的掌握 ...
閱讀 1221·2021-09-26 09:55
閱讀 3183·2019-08-30 15:55
閱讀 961·2019-08-30 15:53
閱讀 2291·2019-08-30 13:59
閱讀 2377·2019-08-29 13:08
閱讀 1104·2019-08-29 12:19
閱讀 3299·2019-08-26 13:41
閱讀 416·2019-08-26 13:24