摘要:是一個的核心模塊,提供常用函數(shù)的集合,用于彌補(bǔ)核心的功能過于精簡的不足。是一個將任意對象轉(zhuǎn)換為字符串的方法,通常用于調(diào)試和錯誤輸出。用于判斷是否為正則表達(dá)式,是返回,否則返回。
講講node常用工具util。 util是一個Node.js的核心模塊,提供常用函數(shù)的集合,用于彌補(bǔ)核心Javascript的功能過于精簡的不足。
util.inherits(constructor, superConstructor)是一個實(shí)現(xiàn)對象間繼承的函數(shù)。
JavaScript的面向?qū)ο筇匦允腔谠停ㄈ绻涣私庠妥约涸谌フ艺蚁嚓P(guān)文章補(bǔ)習(xí)一下),與常用的基于類不同。JavaScript沒有提供對象繼承的語言級別特性,而是通過原型復(fù)制來實(shí)現(xiàn)的。
先說說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)
我們定義了一個基礎(chǔ)對象 Base 和一個繼承自 Base 的 Sub,Base 有三個在構(gòu)造函數(shù)內(nèi)定義的屬性和一個原型中定義的函數(shù),通過util.inherits 實(shí)現(xiàn)繼承。運(yùn)行結(jié)果如下:
可以看到,Sub僅僅繼承了Base在原型中定義的函數(shù),而貢棗函數(shù)內(nèi)部創(chuàng)造的Base屬性和sayHello函數(shù)都沒有被Sub繼承。同時,在原型中定義都屬性不回被console.log作為對象都屬性輸出。
util.inspect(object,[showHidden],[depth],[colors]):是一個將任意對象轉(zhuǎn)換為字符串的方法,通常用于調(diào)試和錯誤輸出。它至少接收一個參數(shù)object,即要轉(zhuǎn)換的對象。
showHidden是一個可選參數(shù),如果值為true,將會輸出更多隱藏信息,
depth表示最大遞歸的層數(shù),如果對象很復(fù)雜,你可以指定層數(shù),如果不指定,默認(rèn)會遞歸2層指定為null表示將不限遞歸層數(shù)完整的遍歷對象。如果color的值為true,輸出格式將會以ANSI顏色編碼,通常用于在終端現(xiàn)實(shí)出更漂亮的效果。
特別要指出的是,util.inspect并不會簡單地直接把對象轉(zhuǎn)換為字符串,即使該對象定義了toString方法也不會調(diào)用。
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))
結(jié)果為:
util.isArray(object): 如果給定的參數(shù)object是一個數(shù)組返回true,否則返回false,用于判斷是否為數(shù)組。
var util = require("util"); util.isArray([]) // true util.isArray(new Array) // true util.isArray({}) // false
util.isRegExp(object) :用于判斷是否為正則表達(dá)式,是返回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) :如果給定的參數(shù)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 了解詳細(xì)內(nèi)容。
另外可以看看Underscore
Underscore.js是一個很精干的庫,壓縮后只有4KB。它提供了幾十種函數(shù)式編程的方法,彌補(bǔ)了標(biāo)準(zhǔn)庫的不足,大大方便了javaScript的編程。Underscore.js還可以用于Node.js。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/104594.html
摘要:在源碼中也可以看到,在執(zhí)行之前動態(tài)的引入了這些解釋器模塊。因為認(rèn)為如果你要使用,那么一定會有對應(yīng)的依賴,這個模塊就是與同級的依賴,也就是說可以放心的進(jìn)行,大致這樣的結(jié)構(gòu)的位置在這里執(zhí)行腳本以及一個相反的栗子 NPM是Node.js的包管理工具,隨著Node.js的出現(xiàn),以及前端開發(fā)開始使用gulp、webpack、rollup以及其他各種優(yōu)秀的編譯打包工具(大多數(shù)采用Node.js來實(shí)...
摘要:例如,的回調(diào)函數(shù)包含下面幾個參數(shù)轉(zhuǎn)換成之后,它的參數(shù)將會變成這樣一個對象通過內(nèi)部符號處理非標(biāo)準(zhǔn)回調(diào)函數(shù)。 Nodejs 8 有一個新的工具函數(shù) util.promisify()。他將一個接收回調(diào)函數(shù)參數(shù)的函數(shù)轉(zhuǎn)換成一個返回Promise的函數(shù)。 1、util.promisify()小例子 如果你給以下命令傳入文件路徑,則會輸出文件內(nèi)容 // echo.js const {promis...
摘要:為指定事件注冊一個監(jiān)聽器,接受一個字符串和一個回調(diào)函數(shù)。發(fā)射事件,傳遞若干可選參數(shù)到事件監(jiān)聽器的參數(shù)表。為指定事件注冊一個單次監(jiān)聽器,即監(jiān)聽器最多只會觸發(fā)一次,觸發(fā)后立刻解除該監(jiān)聽器。 1.Node.js 簡介 Node.js 其實(shí)就是借助谷歌的 V8 引擎,將桌面端的 js 帶到了服務(wù)器端,它的出現(xiàn)我將其歸結(jié)為兩點(diǎn): V8 引擎的出色; js 異步 io 與事件驅(qū)動給服務(wù)器帶來極高...
摘要:那我們有沒有辦法不刷新頁面又能看到代碼的更新呢其實(shí)很簡單,因為已經(jīng)內(nèi)置了這樣的功能,我們只要配置下的注意到上面的代碼,我們增加了,讓開發(fā)環(huán)境有了熱更新的能力。 作者:Nicolas (滬江Web前端)本文為原創(chuàng)文章,轉(zhuǎn)載請注明作者及出處 本文的 webpack 代碼示例根據(jù) webpack 2.7.0 編寫,并在 Mac 上正常運(yùn)行。 去年一篇《在 2016 年學(xué) JavaScript...
摘要:開發(fā)環(huán)境已經(jīng)普及使用瀏覽器環(huán)境卻支持不好需要開發(fā)環(huán)境編譯內(nèi)容很多,重點(diǎn)了解常用語法面試開發(fā)環(huán)境的使用重點(diǎn)語法的掌握問題模塊化如何使用,開發(fā)環(huán)境如何打包和普通構(gòu)造函數(shù)有何區(qū)別的基本使用和原理總結(jié)一下其他常用功能模塊化的基本語法開發(fā)環(huán)境電腦有 ES6 開發(fā)環(huán)境已經(jīng)普及使用 瀏覽器環(huán)境卻支持不好(需要開發(fā)環(huán)境編譯) 內(nèi)容很多,重點(diǎn)了解常用語法 面試:開發(fā)環(huán)境的使用 + 重點(diǎn)語法的掌握 ...
閱讀 1214·2021-09-26 09:55
閱讀 3159·2019-08-30 15:55
閱讀 949·2019-08-30 15:53
閱讀 2286·2019-08-30 13:59
閱讀 2367·2019-08-29 13:08
閱讀 1098·2019-08-29 12:19
閱讀 3290·2019-08-26 13:41
閱讀 411·2019-08-26 13:24