console.trace()
输出堆栈
console.time() 和 console.timeEnd()
如果你试图查找一个比较隐匿的性能问题,请使用 console.time() 开始计算时间,然后使用 console.timeEnd() 进行打印。
console.memory
如果你的性能问题很棘手,你正在寻找一个比较隐蔽的内存泄漏问题,你可能想尝试和利用 console.memory(属性,而不是函数)来检查你的堆大小状态。
console.profile(‘profileName’) 和 console.profileEnd(‘profileName’)
这不是标准的方法,但得到各浏览器调试工具的广泛支持。您可以使用 console.profile(‘profileName’) ,然后使用 console.profileEnd(‘profileName’) ,从代码中启动和结束浏览器性能工具 – 性能配置文件。这将帮助你准确地分析你想要的内容,并防止的单击鼠标,这取决于执行时间。
console.count(“STUFF I COUNT”)
在函数或代码反复出现的情况下,可以使用 console.count(’?’) 来获取代码被读取的次数。
console.assert(false, “Log me!”)
是的,有条件的日志记录不需要用 if-else 包装你的 logs(日志) ?。你可以使用 console.assert(condition, msg) 在条件为假时记录某些内容。
console.group(‘group’) 和 console.groupEnd(‘group’)
写了这么多的日志之后,你可能想要对它们进行合理组织,以方便你查看。一个小而有用的工具是 console.group() 和 console.groupEnd() 。使用 console group ,你的 console 日志将被分组在一起,而每个分组在层次结构中创建另一个层次。调用 groupEnd 减少一个。
字符串替换
日志记录时,可以使用字符串替换合并变量。这些引用类型应该是(%s = string,%i = integer,%o = object,%f = float)。
console.clear()
那么,写了这么多的日志,现在是时候清理一下你的控制台了。
console.table()
在我看来,这是一个真正的宝贝!实际上,你可以使用 console.table() 打印一个非常漂亮的表格。
在Chrome devtools界面按 ctrl + shift + p 输入 Show Rendering
不过这个东西没啥用
chrome DevTools之黑箱大法(Blackbox )
Blackbox 提高JavaScript调试效率
所有人前端开发人员都会遇到的问题,您的应用程序代码中会出现错误。您开始调试,但是逐行执行代码时,调试器有时会跳转到不是您的焦点的源文件(例如第三方JS库)。我相信你在回到自己的应用程序代码之前,经历了很多烦恼。
Blackboxing(黑箱)为您提供了便利,以便调试器可以绕过一个第三方JS库。当您黑箱一个源文件时,调试时代码,调试器将不会跳转到该文件(黑箱中的文件)。
当你黑箱子一个脚本,会发生什么
进入/退出/过渡绕过库代码
事件侦听器断点不会破坏库代码
调试器不会暂停在库代码中设置的任何断点。
总之当黑箱一个脚本时,能让你更加方便的专注调试当前脚本
如何黑箱脚本
使用settings(设置) – 选中Blackboxing
当对应代码文件的标注行数位置点击Blackbox script
monitor & unmonitor
monitor(function),它接收一个函数名作为参数,比如function a,每次a被执行了,都会在控制台输出一条信息,里面包含了函数的名称a及执行时所传入的参数。
而unmonitor(function)便是用来停止这一监听。
function sayHello(name){
alert(‘hello,’+name);
}
monitor(sayHello);
sayHello(‘wayou’);
unmonitor(sayHello);
sayHello(‘wayou’);
debug & undebug
debug同样也是接收一个函数名作为参数。当该函数执行时自动断下来以供调试,类似于在该函数的入口处打了个断点,可以通过debugger来做到,同时也可以通过在Chrome开发者工具里找到相应源码然后手动打断点。
而undebug 则是解除该断点。
console.dir(这个方法是我经常使用的 可不知道比for in方便了多少) 直接将该DOM结点以DOM树的结构进行输出,可以详细查对象的方法发展等等
重写console.log(可以关闭输出)
console.log = (function(oriLogFunc){
return function(str)
{
oriLogFunc.call(console,“hello:”+str);
}
})(console.log);
layabox官方关闭log的方法
TraceTool.closeAllLog();
TraceTool.getCallStack();
得到调用堆栈
TraceTool.getClassName(instance);
只能得到实例的类名
ClassTool.getClassName();
既可以传实例 也可以传类 都能得到正确的类名称 非常好用
keys和values前者返回传入对象所有属性名组成的数据,后者返回所有属性值组成的数组
ObjectTools.setAutoTypeValue(obj:Object,key:String,value:*);
他会自动判断你数据里的类型 然后转成你想要的类型
加载配置表的时候会用到
ObjectTools.clearObj();
清空对象
StringTool.toLowHead();
首字母小写 注入时用
loading界面用这个
Dialog.manager.setLockView(l);
Dialog.manager.lock(false);
Laya.init( 0, 0,WebGL,Log);
屏幕上显示日志
https://github.com/Stuk/jszip
http://stuk.github.io/jszip/