1、测试代码,保存为【test.html】

    Document

效果如下:

2、源码(保存为 write.js)

//生成打印对象的字符串,方便 document.write//或者 innerText 和 innerHTML 调用function getWriteHtml() {    var args = Array.from(arguments);           //将参数转换成数组    var strRet = "";    var isfirst = true;                         //第一个不需要打印逗号    for(var arg of args) {        if (!isfirst) { strRet += (","); }  //不是第一个元素全都要打印逗号        if (arg instanceof Array) {             //如果是数组            strRet += '['+getWriteHtml(...arg)+']';                      //将 [arg] 转换成  (1,2,3) 的形式,再一次write(递归)        } else if (arg instanceof Object) {     //如果是对象 { k:v, k:v } 这种形式            strRet += "{";                         //打印 {            var isfirst2 = true;                //第一个不需要打印逗号            for(var k in arg) {                 //循环取 k                if (!isfirst2) { strRet += (","); }                 strRet += k + ":" + getWriteHtml(arg[k]);          //打印 k:v => 其中 v 不知道是啥,所以递归调用打印方法                isfirst2 = false;               //表示后面的都不需要打印逗号了            }            strRet += "}";                         //打印 }        } else strRet += (arg);             //即不是数组,也不是对象,直接打印就是了        isfirst = false;    }    return strRet;}function getWriteHtmlPretty() {    var info = {        level: 0, newLine: true,        valColor: '#666',                           //值颜色        bracketColor: '#a00',                       //括号颜色        objKeyColor: '#0a0'                         //键值对里的键颜色    };    function _getWriteHtmlPretty() {        var args = Array.from(arguments);           //将参数转换成数组        var strRet = "";        var info = args[0];        var clevel = info.level;        var spaces = ''.padEnd(clevel, '');       //根据级别来计算缩进        var spaces2 = ''.padEnd(clevel + 1, '');  //根据级别来计算缩进        var isfirst = true;                         //第一个不需要打印逗号        for(var c=1; c[${_getWriteHtmlPretty(...[info, ...arg])}]`;                      //将 [arg] 转换成  (1,2,3) 的形式,再一次write(递归)            } else if (arg instanceof Object) {     //如果是对象 { k:v, k:v } 这种形式                info.level++;                if (info.newLine) { strRet += "" + spaces; }                strRet += `{`;                         //打印 {                var isfirst2 = true;                //第一个不需要打印逗号                for(var k in arg) {                 //循环取 k                    if (!isfirst2) { strRet += ","; }                       if (arg[k] instanceof Object) info.newLine = false;                    strRet += `${spaces2}${k}:`                             + `${ _getWriteHtmlPretty(...[info, arg[k]])}`;          //打印 k:v => 其中 v 不知道是啥,所以递归调用打印方法                    info.newLine = true;                    isfirst2 = false;               //表示后面的都不需要打印逗号了                }                strRet += `${spaces}}`;                         //打印 }                info.level--;            } else strRet += `${arg}`;             //即不是数组,也不是对象,直接打印就是了            isfirst = false;        }        return strRet;    }    var args = [info, ...Array.from(arguments)];           //将参数转换成数组    return _getWriteHtmlPretty(...args);}function write() {    var html = getWriteHtml(...Array.from(arguments));    document.write(html);}//打印完加个  标签,html里的换行function writebr() {                                var args = Array.from(arguments);    write(...args);    write("");}//打印完加个换行符,普通format的换行function writeln() {    var args = Array.from(arguments);    write(...args);    write("");}//格式化打印  writeformat(()=>{  这里头调打印函数 });function writeformat(func) {    write("
");    func();    write("");}

js 字符串换行_分享自己写的一个js的信息打印程序相关推荐

  1. java按键发出声音代码_用Java写的一个根据按键发声的程序,为什么只有前16次按键响...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public void sound(int tone){ try { sequencer = MidiSystem.getSequencer(); seq ...

  2. sand java_我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,...

    我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,就是无法连续调用,就是如果调用一次就退出然后再运行就可以,如果用完了,再主方法里选择... 我在san ...

  3. js 字符串替换_正则精要:玩转JS正则表达式,也许只需这一篇(建议收藏)

    0.导引 在正文开始前,先说说正则表达式是什么,为什么要用正则表达式?正则表达式在我个人看来就是一个程序可以识别的规则,有了这个规则,程序就可以帮我们判断某些字符是否符合我们的要求.但是,我们为什么要 ...

  4. js foreach用法_使用 nodejs 写爬虫(一): 常用模块和 js 语法

    本篇是使用 nodejs 写爬虫系列教程的第一篇, 介绍了使用 nodejs 写爬虫过程中常用的模块和一些必须掌握的 js 语法 <!-- more --> 常用模块 常用模块有以下几个: ...

  5. js 字符串加减法_基于字符串的数值之加减乘除JS算法研究

    在我们的日常js项目中,我们不免会碰到需要进行前端计算的场景.而大家都知道,计算机进行计算时存在精度问题,且数值有值域,偶尔会碰到溢出问题.在最近的一个项目中,由于遇到了一个超过20位的数,因此,又不 ...

  6. 切换图片尝试写第一个js插件 图片轮播

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 最近在看怎么写js插件,实验写了一个简单的图片轮播插件 jqury.picPlay.js . 基本html框架为<div cl ...

  7. 构建node.js基础镜像_在Android上构建Node.js应用程序

    构建node.js基础镜像 by Aurélien Giraud 通过AurélienGiraud 在Android上构建Node.js应用程序-第1部分:Termux,Vim和Node.js (Bu ...

  8. python斗地主游戏源码_我用tkinter写的一个斗地主练习复盘python程序

    python写的斗地主模拟器使用说明,以及python的标准控件库tkinter的使用示例. http://vdisk.weibo.com/s/C5R1f8s9EVq2y 我用python写的一个斗地 ...

  9. 自己如何写mysql数据库_自己手写的一个初始化MySQL数据库的工具!

    由于项目需要,我写了一个初始MySQL数据库的工具: 一, 思路: (1),首先读取包含mysql语句的脚本(其中有创建数据库,表,插入初始数据等!). (2),然后替换里面的一些数据值(如guid, ...

  10. Next.js如何引入百度分享(外部引用)类似的外部js,以及如何操作window

    前言 近期使用React官方推荐的服务端渲染工具Next.js进行服务端页面编程时遇到引入百度分享等外部JS文件的问题. Next.js可以使用内置组件来装在 <head> 到页面中 im ...

最新文章

  1. 题目1192:回文字符串
  2. 汉语转拼音pinyin4j
  3. dp线长什么样子_怎么样选择好的DP线?
  4. python画图fig.show()一闪而过的解决方法
  5. C++ 性能剖析 (四):Inheritance 对性能的影响
  6. Windows查看网络端口被占用情况netstat命令
  7. sap中用函数增加断点(break point)
  8. 常用API-3(System类、Math类、Arrays类、正则表达式)
  9. 第三章 Redis/SSDB+Twemproxy安装与使用
  10. java 正则表达式 数量
  11. 【数学建模】CUMCM-2011B model5 围捕方案确定
  12. 【独家折扣】淘客小程序源码
  13. linux重装系统驱动,linux系统下安装驱动方法
  14. linux dsp开发环境,在ubuntu上搭建uclinux开发环境(转载)--- 第二篇
  15. 国家标准计算机软件测试文档范文,软件测试相关国家标准.doc
  16. PHP现代濒危动物毕业论文,保护濒危动物(论文).doc
  17. 局域网控制软件之有效控制局域网主机带宽
  18. Realtek HD声卡前置面板音频设置教程(前置音频没声音解决办法)
  19. 壁纸不够用?教你爬空优美图库的动漫壁纸
  20. LeetCode(Sorting) 2089Find Target Indices After Sorting Array

热门文章

  1. python爬虫什么框架好用_推荐十款高效率的Python爬虫框架,你用过几个?
  2. executor-cores参数并未对vcores生效的原因分析
  3. MongoDB aop 日志
  4. Linux系统究竟我要怎样学?
  5. mySQL中replace的用法
  6. C#中取得汉语拼音首字母
  7. CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)
  8. jenkins发送构建邮件配置项中文
  9. pkcs1与pkcs8格式RSA私钥互相转换
  10. 提高专业技能之 “专利申请”