JS在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
括号匹配的增强版本,要求输出括号里的内容 发布于:2023-11-30 12:36 学习js的第二天 不知道代码有没有错 发布于:2023-11-29 20:33 学习代码的第二天 1. 自定义程序: -**gcd**(最大公因数) 发布于:2023-11-29 20:12 策略执行流程部分示例代码 发布于:2023-11-29 20:31 堆排序的实现 发布于:2023-11-27 22:36 在线人数显示 发布于:2023-11-26 11:46 初学者的呻吟! 发布于:2023-11-24 13:44 新共享员工工作量明细查询 发布于:2023-11-23 10:11 JS堆排序 发布于:2023-11-22 21:00 大根堆自顶向下 发布于:2023-11-22 21:20 交通信号灯 发布于:2023-11-21 09:12 第9章:交通信号灯实践 发布于:2023-11-21 09:20 时间 季姬击鸡记街机 发布于:2023-11-20 22:04 hello world 发布于:2023-11-20 13:00 hello world 发布于:2023-11-20 13:01 验证Promise.all嵌套Promsie.all的执行顺序 发布于:2023-11-17 16:41 测试运行结果 发布于:2023-11-16 18:21 浪潮PUT请求 发布于:2023-11-16 17:03 url参数 发布于:2023-11-15 11:06 无序数组中的第 K 大元素 发布于:2023-11-14 21:49 快速排序算法 发布于:2023-11-14 21:48 生成器函数 发布于:2023-11-14 20:49 查找一个无序数组中的第 K 大元素 发布于:2023-11-13 20:28 快速排序。 发布于:2023-11-13 20:26 一些常用方法 发布于:2023-11-13 17:36 快速选择排序求第几大数子 发布于:2023-11-12 11:09 快速排序算法 发布于:2023-11-12 10:33 实现数组去重 发布于:2023-11-09 21:53 实现数组的扁平化 发布于:2023-11-09 21:50 kuaipai 第k个 发布于:2023-11-09 17:05 不使用额外数组情况下,实现快速排序 发布于:2023-11-08 14:48 JS 打印过去30天的日期和星期 发布于:2023-11-07 19:57 JS 打印未来30天日期和星期 发布于:2023-11-07 19:55 js 原型 实战 发布于:2023-11-07 10:54 JS prototype 原型 发布于:2023-11-06 16:10 String相关处理函数 发布于:2023-11-06 14:51 求解无序数组中逆序对的个数 发布于:2023-11-06 14:29 归并排序算法 发布于:2023-11-06 14:21 手写apply和bind 发布于:2023-11-06 12:54 vue3源码解析 发布于:2023-11-06 16:16 Javascript数组相关函数 发布于:2023-11-06 11:05 求无序数组中逆序对的个数 发布于:2023-11-06 10:30 求出一组数据的有序对个数或者逆序对个数 发布于:2023-11-05 17:37 归并排序算法 发布于:2023-11-05 15:50 测试代码进制转换 发布于:2023-11-03 17:51 求解无序数组逆序对的个数 发布于:2023-11-02 18:08 归并排序问题 发布于:2023-11-02 17:41 萨达撒多啊实打实大 发布于:2023-11-02 16:42 总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个 颜色位置对 ,用于描述每个环: 第 i 对中的 第一个 字符表示第 i 个环的 颜色('R'、'G'、'B')。 第 i 对中的 第二个 字符表示第 i 个环的 位置,也就是位于哪根杆上('0' 到 '9')。 例如,"R3G2B1" 表示:共有 n == 3 个环,红色的环在编号为 3 的杆上,绿色的环在编号为 2 的杆上,蓝色的环在编号为 1 的杆上。 找出所有集齐 全部三种颜色 环的杆,并返回这种杆的数量。 发布于:2023-11-02 14:53 正则表达式测试 发布于:2023-11-02 11:14 [更多]
显示目录

实用工具



实用工具

稳定性: 4 - 锁定

本节介绍Node.js的'util'模块中的函数的使用,通过require('util')访问该模块,如下所示:

const util = require('util');

util 模块原先设计的初衷是用来支持Node.js的内部API的。这里的很多的函数对你的程序来说都非常有用。如果你觉得这些函数不能满足你的要求,那你可以写自己的工具函数。我们不希望'util'模块里添加对于node内部函数无用的扩展。

util.debuglog(section)

  • section{字符串} 被调试的程序节点部分
  • Returns: {Function} 日志函数

用来创建一个有条件的写到stderr的函数(基于NODE_DEBUG环境变量)。如果section出现在环境变量里,返回函数将会和console.error()类似。否则,返回一个空函数。

例如:

var debuglog = util.debuglog('foo');

var bar = 123;
debuglog('hello from foo [%d]', bar);

如果这个程序以NODE_DEBUG=foo的环境运行,将会输出:

FOO 3245: hello from foo [123]

3245是进程ID。如果没有运行在这个环境变量里,将不会打印任何东西。

可以用逗号切割多个NODE_DEBUG环境变量。例如:NODE_DEBUG=fs,net,tls

util.format(format[, ...])

使用第一个参数返回一个格式化的字符串,类似printf

第一个参数是字符串,它包含0或更多的占位符。每个占位符被替换成想要参数转换的值。支持的占位符包括:

  • %s- 字符串.
  • %d- 数字 (整数和浮点数).
  • %j- JSON。如果参数包含循环引用,将会用字符串替换R
  • %%- 单独一个百分号 ('%')。 不会消耗一个参数。

如果占位符没有包含一个相应的参数,占位符不会被替换。

util.format('%s:%s', 'foo'); // 'foo:%s'

如果参数超过占位符,多余的参数将会用util.inspect()转换成字符串,并拼接在一起,用空格隔开。

util.format('%s:%s', 'foo', 'bar', 'baz'); // 'foo:bar baz'

如果第一个参数不是格式化字符串,那么util.format()会返回所有参数拼接成的字符串(空格分割)。每个参数都会用util.inspect()转换成字符串。

util.format(1, 2, 3); // '1 2 3'

util.log(string)

stdout输出并带有时间戳:

require('util').log('Timestamped message.');

util.inspect(object[, options])

返回一个对象的字符串表现形式,在代码调试的时候非常有用。

通过加入一些可选选项,来改变对象的格式化输出形式:

  • showHidden- 如果为true,将会显示对象的不可枚举属性。默认为false

  • depth- 告诉inspect格式化对象时递归多少次。这在格式化大且复杂对象时非常有用。默认为 2。如果想无穷递归的话,传null

  • colors- 如果为true,输出内容将会格式化为有颜色的代码。默认为false, 颜色可以自定义,参见下文。

  • customInspect- 如果为false,那么定义在被检查对象上的inspect(depth, opts) 方法将不会被调用。 默认为true。

检查util对象上所有属性的例子:

var util = require('util');

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

当被调用的时候,参数值可以提供自己的自定义inspect(depth, opts)方法。该方法会接收当前的递归检查深度,以及传入util.inspect()的其他参数。

自定义util.inspect颜色

util.inspect通过util.inspect.stylesutil.inspect.colors对象,自定义全局的输出颜色,

util.inspect.stylesutil.inspect.colors组成风格颜色的一对映射。

高亮风格和他们的默认值:

  • 数字 (黄色)
  • boolean (黄色)
  • 字符串 (绿色)
  • date (洋红)
  • regexp (红色)
  • null (粗体)
  • undefined (斜体)
  • special (青绿色)
  • name (内部用,不是风格)

预定义的颜色为: white斜体blackbluecyan绿色洋红红色黄色以及粗体斜体下划线反选风格。

对象上德自定义inspect()函数

对象也能自定义inspect(depth)函数, 当使用util.inspect()检查该对象的时候,将会执行对象自定义的检查方法:

var util = require('util');

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

util.inspect(obj);
  // "{nate}"

你可以返回另外一个对象,返回的字符串会根据返回的对象格式化这和JSON.stringify()的工作流程类似。您还可以完全返回另一个对象,返回的字符串将根据返回的对象格式化。这与JSON.stringify()的工作方式类似:

var obj = { foo: 'this will not show up in the inspect() output' };
obj.inspect = function(depth) {
  return { bar: 'baz' };
};

util.inspect(obj);
  // "{ bar: 'baz' }"

util.isArray(object)

Array.isArray的内部别名。

如果参数"object"是数组,返回true ,否则返回false

var util = require('util');

util.isArray([])
  // true
util.isArray(new Array)
  // true
util.isArray({})
  // false

util.isRegExp(object)

如果参数"object"是RegExp返回true ,否则返回false

var util = require('util');

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

util.isDate(object)

如果参数"object"是Date返回true,否则返回false

var util = require('util');

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

util.isError(object)

如果参数"object"是Error返回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

util.inherits(constructor, superConstructor)

从一个构造函数constructor继承原型方法到另一个。构造函数的原型将被设置为一个新的从超类(superConstructor)创建的对象。

通过constructor.super_属性可以访问superConstructor

var util = require("util");
var events = require("events");

function MyStream() {
    events.EventEmitter.call(this);
}

util.inherits(MyStream, events.EventEmitter);

MyStream.prototype.write = function(data) {
    this.emit("data", data);
}

var stream = new MyStream();

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.deprecate(function, string)

标明该方法不要再使用。

exports.puts = exports.deprecate(function() {
  for (var i = 0, len = arguments.length; i < len; ++i) {
    process.stdout.write(arguments[i] + '\n');
  }
}, 'util.puts: Use console.log instead')

返回一个修改过的函数,默认情况下仅警告一次。如果设置了--no-deprecation该函数不做任何事。如果设置了--throw-deprecation,如果使用了该API应用将会抛出异常。

util.debug(string)

稳定性: 0 - 抛弃: 使用 console.error() 替换。

console.error的前身。

util.error([...])

稳定性: 0 - 抛弃: 使用 console.error() 替换。

console.error的前身。

util.puts([...])

稳定性: 0 - 抛弃:使用 console.log() 替换。

console.log的前身。

util.print([...])

稳定性: 0 - 抛弃: 使用 console.log() 替换。

console.log的前身。

util.pump(readableStream, writableStream[, callback])

稳定性: 0 - 抛弃: Use readableStream.pipe(writableStream)

stream.pipe的前身。

由JSRUN为你提供的JS在线运行、在线编译工具
        JSRUN提供的JS 在线运行,JS 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。