我是靠谱客的博主 害羞路人,最近开发中收集的这篇文章主要介绍JS在html中打印所有类型的数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

// 返回数据类型详情
function type(s){
return Object.prototype.toString.call(s)
}
/**
* 给特殊字符添加转义符: ' " n r
* @param s 需要转义的内容
* @param bool auto;是否在两边添加双引号
*/
function addslash(s,bool){
s=s.toString().split("\").join("\\").split("'").join("\'").split('"').join('\"').split("n").join("\n").split("r").join("\r")
return bool ? '"'+s+'"' : s
}
/**
* 格式化数据,并包括对象特性
* 注:对象特性名 无引号包裹;与dom元素关联的元素仅显示标签
* @param a 需要操作的数据
* @param gap 缩略符
* @param n (递归时)规定使用多少个缩略符
* @param bool (递归时)判断是否返回对象类型、剔除函数名
*/
function scanf(a,gap,n,bool){
var t=typeof a
if(!a || t !== "object"){
if(t === "string"){
a = a ? addslash(a,1) : '""'
}else if(t === "function"){
var g="n"+gap.repeat(n)
a=a.toString().split(/n+/).join(g)
// 可能要剔除函数名
if(bool) a=a.replace(/^functions+w+s*/,"function ")
}else a+=""
}else{
var t=type(a)
if(bool && (t ===
"[object HTMLDocument]" || t ===
"[object Window]")) return t
else if(t === "[object RegExp]") return a
var gr="n"+gap.repeat(n++),g=gr+gap,r=[],i
if(t === "[object Array]"){
var l=a.length
for(i=0;i<l;i++) r.push(scanf(a[i],gap,n))
a=l ? "["+g+r.join(","+g)+gr+"]" : "[]"
}else if(t === "[object Object]"){
for(i in a){
r.push(addslash(i,1)+":"+scanf(a[i],gap,n,1))
}
a=r.length ? "{"+g+r.join(","+g)+gr+"}" : "{}"
}else if(bool && t.match(/^[object HTMLw+Element]$/)){
return t+"{"+g+"outerHTML:"+addslash(a.outerHTML,1)+gr+"}"
}else{
var ks=Object.keys(a)
for(i in a){
r.push(addslash(i,ks.indexOf(i)+1)+":"+scanf(a[i],gap,n,1))
}
a=t+(r.length ? "{"+g+r.join(","+g)+gr+"}" : "{}")
}
}
return a
}
// 在html内格式化输出
function printf(a){
a=scanf(a,"
",0)
a=a.split('&').join('&amp;').split('<').join('&lt;').split('>').join('&gt;')
document.write('<pre>'+a+'</pre>')
}

说明:

  1. IE 不支持 repeat() 方法。有需要可自写方法
  2. HTMLDocument 和 Window 类型相当于超全局变量,且均有属性等于自身,因此仅输出其类型
  3. 特殊object类型输出时,会在前显示类型
  4. 对象特性 无引号包裹,非特性则有
  5. document.all 此数据极其特殊,不建议使用

Js中,打印数据的方法有:console.log(),alert(),document.write(),document.writeln()
其中仅有console.log()可查看数据详情,但是对于移动端和某些低版本浏览器并不友好

【以上为个人原创内容,如需更正,请留言】

最后

以上就是害羞路人为你收集整理的JS在html中打印所有类型的数据的全部内容,希望文章能够帮你解决JS在html中打印所有类型的数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部