日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Node.js中的常用工具类util

發布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Node.js中的常用工具类util 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

util是一個Node.js核心模塊,提供常用函數的集合,用于彌補JavaScript的功能的不足,util模塊設計的主要目的是為了滿足Node內部API的需求。其中包括:格式化字符串、對象的序列化、實現對象繼承等常用方法。要使用util模塊中的方法,只需require('util')引入即可。

1. 格式化輸出字符串:util.format(format[, ...])

根據第一個參數,返回一個格式化字符串,類似printf的格式化輸出。 傳入的第一個參數是一個字符串,其中包含零個或多個占位符,format方法會將其中的每一個占位符被替換為與其對應的值后,輸出結果。?format方法支持的占位符有:

  • %s?- 字符串.
  • %d?- 數字 (整型和浮點型).
  • %j?- JSON. 如果這個參數包含循環對象的引用,將會被替換成字符串?'[Circular]'。
  • %%?- 單獨一個百分號('%')。不會占用一個參數。

format方法的幾種使用示例:

console.log(util.format('%s:%s', 'foo')); // foo:%s console.log(util.format('%s:%s:%d', 'foo', 'bar', 'baz')); // foo:bar:NaN console.log(util.format(1, 2, 3)); // 1 2 3


2. 在控制臺標準輸出:util.log(string)

printf方法用于在控制臺stdout輸出,輸出帶有時間戳。

util.log('這是一個stout輸出'); //15 Jun 18:28:20 - 這是一個stout輸出


3. 將對象序列化為字符串:util.inspect(object[, options])

inspect方法用于將對象序列化為字符串,這一方法在調試代碼查看對象結構時非常有用。其可選參數可選值如下:

  • showHidden?- 是否枚舉顯示對象的隱藏屬性。默認為?false

  • depth?- 設置對象枚舉顯示的深度。默認為2,設置為null時將無窮遞歸顯示


  • colors?- 如果設為true,將會以ANSI顏色代碼風格進行輸出。默認為?false


  • customInspect?- 如果設為?false,那么定義在被檢查對象上的inspect(depth, opts) 方法將不會被調用。 默認為true。

例如檢查util對象的所有屬性。代碼如下:

var util = require('util');console.log(util.inspect(util, { showHidden: true, depth: null }));

3.1 自定義?util.inspect?顏色

util.inspect屬性用于自定義輸出的顏色和樣式,可以通過util.inspect.styles?和util.inspect.colors?屬性設置。

util.inspect.colors可定義的顏色有:white,?grey,?black,?blue,?cyan,?green,?magenta,?red?和?yellow。

util.inspect.styles可定義的樣式有:bold,?italic,?underline?和?inverse

3.2 自定義對象的?inspect()?方法

對象可以定義自己的?inspect(depth)方法;當使用util.inspect()檢查該對象的時,自定義的inspect(depth)方法將會被執行。使用示例如下:

var util = require('util');var obj = { name: 'nate' }; obj.inspect = function(depth) {return '{' + this.name + '}'; };util.inspect(obj);// "{nate}"


4. 檢查對象是否是數組:util.isArray(object)

isArray()方法用于檢查傳入對象是否是數據,isArray()方法會首先使用ECMAScript5中的Array.isArray()方法和typeof操作符等進行檢查,以確保檢查結果的正確性。幾種使用示例如下:

var util = require('util');util.isArray([])// true util.isArray(new Array)// true util.isArray({})// false


5. 檢查對象是否是RegExp類型:util.isRegExp(object)

isRegExp方法用于檢查對象是否是RegExp類型,即是否為正則表達式對象。幾種使用示例如下:

var util = require('util');util.isRegExp(/some regexp/)// true util.isRegExp(new RegExp('another regexp'))// true util.isRegExp({})// false


6. 檢查對象是否是Date類型:util.isDate(object)

isDate方法用于檢查對象是否是RegExp類型,即日期類型。幾種使用示例如下:

var util = require('util');util.isDate(new Date())// true util.isDate(Date())// false (without 'new' returns a String) util.isDate({})// false


7. 檢查對象是否是Error類型: util.isError(object)

isError方法用于檢查對象是否是Error類型。幾種使用示例如下:

var util = require('util');util.isError(new Error())// true util.isError(new TypeError())// true util.isError({ name: 'Error', message: 'an error occurred' })// false


8. 實現對象間原型繼承:util.inherits(constructor, superConstructor)

util.inherits(constructor, superConstructor)是一個實現對象間原型繼承的方法。JavaScript 的面向對象特性是基于原型的繼承,與常見的基于類的不同,JavaScript 沒有提供對象繼承的語言級別特性,而是通過原型鏈復制來實現的。inherits方法可以將父類原型鏈上的方法復制到子類中,實現原型式繼承。

使用示例,實現一型式繼承:

var util = require("util"); var events = require("events");//MyStream構造函數,在構造函數將this指向本對象 function MyStream() {events.EventEmitter.call(this); }//復制父對象上所有的方法 util.inherits(MyStream, events.EventEmitter);//對MyStream類添加原型方法 MyStream.prototype.write = function(data) {this.emit("data", data); }var stream = new MyStream();//由于MyStream繼承自EventEmitter,所以其實例stream是MyStream類的實例也是EventEmitter類的實例 console.log(stream instanceof events.EventEmitter); // true console.log(MyStream.super_ === events.EventEmitter); // true//父類中的方法調用 stream.on("data", function(data) {console.log('Received data: "' + data + '"'); }) //子類中的方法調用 stream.write("It works!"); // Received data: "It works!"


util模塊中還有一些方法如:util.debug(string)、util.puts([...])、util.pump(readableStream, writableStream, [callback])等,但都不是穩定版本或已被其它方法替代,不再贅述。

總結

以上是生活随笔為你收集整理的Node.js中的常用工具类util的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 琪琪电影午夜理论片八戒八戒 | 成人av免费在线看 | 免费日本视频 | 337p日本大胆噜噜噜鲁 | 狠狠草视频 | 美女免费毛片 | 91大神视频在线播放 | 欧美一区三区二区在线观看 | 污网站免费在线观看 | 无码人妻一区二区三区一 | 国模无码视频一区二区三区 | 校园春色亚洲激情 | 韩国三级bd高清中字2021 | 狠狠爱亚洲 | 五月婷丁香 | 亚洲天堂资源在线 | 伊人99热 | 就要操就要射 | 久久亚洲热 | 亚洲天堂一区二区三区四区 | 精品麻豆一区二区 | 男人操女人的免费视频 | 日韩欧美一区二区三区视频 | www精品视频 | 久久久91精品国产一区二区三区 | 光溜溜视频素材大全美女 | 成人v精品蜜桃久一区 | www.黄色国产 | 婷婷精品视频 | 久久久久久久艹 | 日韩中文字幕 | 夜夜草网站 | 女女互磨互喷水高潮les呻吟 | 亚洲在线激情 | 亚洲精品欧美在线 | 玉女心经是什么意思 | 毛片少妇 | 日一区二区 | 欧美在线网站 | 国产成人一区二区三区小说 | 日韩电影一二三区 | 日韩性生交大片免费看 | 无码人妻丰满熟妇区96 | 色妞ww精品视频7777 | 麻豆视频一区二区三区 | 美女主播在线观看 | 奇米四色影视 | 91传媒网站 | 色香蕉在线| 在线日韩亚洲 | 18禁超污无遮挡无码免费游戏 | 91玉足脚交白嫩脚丫 | 天干夜夜爽爽日日日日 | 欧美日日操 | 国产精品香蕉 | 亚洲人成免费电影 | 国产一级性生活 | 性色av一区二区 | 一本一道波多野结衣一区二区 | 国产乱码精品一区二区三 | 亚洲精品日韩av | 一级大片在线观看 | 欧美视频黄色 | 韩国久久久久久 | 日日夜夜骑 | 伊人久久狼人 | 91麻豆映画传媒 | 国产又粗又猛视频 | 黄色网页在线播放 | 毛片久久久| 另类中文字幕 | 精品深夜av无码一区二区老年 | 久久国产劲爆∧v内射 | 青青青手机在线视频 | 99riav国产精品视频 | 亚洲精品一区二区三区蜜桃 | 国产免费av网 | 亚洲区一 | 91精产国品一二三区在线观看 | 久久99久久久| 中文字幕免费高清视频 | avtt久久| 亚洲在线看片 | 日韩欧美亚洲国产精品字幕久久久 | 国产欧美精品一区二区三区 | 亚洲国产天堂 | 草草色 | aaaaa级少妇高潮大片免费看 | 欧美高清成人 | 福利一区二区 | 成人αv| 野外做受又硬又粗又大视频√ | 日韩一区二区免费在线观看 | 国产在线无码精品 | 国内自拍区 | 国产人妻久久精品一区二区三区 | 色一情一区二区三区四区 | 色综合久久久久无码专区 | 亚洲丁香婷婷 |