草庐IT

log4j-over-slf

全部标签

javascript - 如何在 webgl 着色器中使用 console.log?

我试图了解如何在用GLSL编写的webgl着色器中模拟console.log。很容易收到错误消息,但我不知道如何打印自定义消息。基本上我想在浏览器的控制台打印东西:voidmain(void){//console.logdoesn'tworkheresinceit'sGLSLnotjavascriptgl_FragColor=vec4(0.0,0.0,0.0,1.0);}有什么建议吗? 最佳答案 编译着色器后,您可以执行以下操作:if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS))

javascript - 为什么 console.log 在 Chrome 的某些网站上是一个空函数?

转到Twitter的登录页面并在控制台中键入以下内容:window.addEventListener('keypress',function(e){console.log('hello')},true)(注意:如何将第三个参数设置为true以启用事件捕获。这会导致事件在被子元素使用之前首先被窗口拦截。)尝试按一些键。请注意hello是如何不输出到控制台的。为keydown或keyup添加事件监听器不会改变任何内容。hello将在大多数网站上获得输出,但不会在Twitter或Gmail等网站上获得输出。为什么?是什么阻止了事件监听器?编辑:似乎在Firefox上按预期工作。但不是Chro

javascript - Safari/WebKit 的 console.log DOM 节点作为对象?

这让我抓狂了一段时间。当我console.log一个DOM节点(通过示例从document.getElementById返回)时,它显示为一个交互式html元素,就像它出现在“元素”选项卡上一样。这肯定很方便,但有时我只想展开对象并查看其所有属性,就像我可以对登录到控制台的所有其他类型的对象一样。有什么方法可以让DOM节点作为常规对象显示在控制台中? 最佳答案 使用console.dir而不是console.log。console.log(document.body);...console.dir(document.body);>H

javascript - 有循环 "start-over"吗?

有continue;停止循环并移动到下一个循环有break;停止循环并移动到循环的结尾难道没有某种start;可以停止循环并移动到循环的开始吗?我知道只需修改i的值即可轻松实现所有这三个操作,但我总是尝试寻找已经内置的函数。 最佳答案 将循环变量的值重置为初始值,然后调用continue就可以了。例如:for(vari=0;i 关于javascript-有循环"start-over"吗?,我们在StackOverflow上找到一个类似的问题: https://

javascript - 如何使用 Jest 和 jsdom 来测试 console.log?

我刚刚开始使用Jest,并且已经成功编写了测试DOM的单元测试。我有一个library在屏幕上输入内容,所以我可以很好地进行测试。在某些情况下,我的库不会抛出错误,而是吐出console.warn或console.log。是否可以使用Jest来测试这些控制台消息是否正在发生? 最佳答案 您可以像这样通过spy设置console.log:global.console={warn:jest.fn(),log:jest.fn()}//runyourcodeexpect(global.console.log).toHaveBeenCalle

javascript - 自定义控制台日志功能,一个 console.log 包装器

functionlog(msgOrObj){if(dev_mode){console.log({'message':msgOrObj,'caller':arguments.callee.caller.toString()});}}因此,我尝试编写一个简单的自定义控制台日志函数(如上所述)。但是,我正在努力寻找调用者来自哪个文件和行。我能看到的最多的是调用它的函数。有人做过类似的事情吗?或者这甚至可能吗?第70行的somescript.js中使用的示例:log('someveryimportantmessage!') 最佳答案 是的,

javascript - 何时/为何使用 map/reduce over for 循环

所以我第一次接触JavaScript中的对象操作,我有一个问题,我想知道是否有人可以回答。当我有一个我想操作的对象时,我可以做一些嵌套for循环的事情,但是JavaScript中内置了函数,如map/reduce/filter,以及lodash/underscore等库。我认为后者(map/reduce/filter和库)是更好的做法,但我只是想知道为什么。我正在做一些非常基本的对象操作,可以通过一些放置得当的for循环来获取和更改对象中正确的键/值来解决,但可以使用JS中的函数/库轻松完成。只是好奇它们如何更好-比如更好的性能/更清晰的代码/易用性/其他。抱歉,没有代码。我非常感谢任

javascript - FireBug 的 console.log() 和 console.debug() 有什么区别?

一个非常简单的代码来说明差异。varx=[0,3,1,2];console.debug('debug',x);console.log('log',x);//abovedisplaythesameresultx.splice(1,2);//belowdisplaykindofadifferentresultconsole.debug('debug',x);console.log('log',x);alttexthttp://sixbytesunder.com/stuff/firebug_console.pngjavascript值完全相同,但console.log()显示它与应用spli

javascript - 为什么 "Single-quoted string preferred over double-quoted string."在 js 中?

在使用gjslint时,我得到一个提示:“单引号字符串优先于双引号字符串”。那为什么呢?我对此有点困惑。为什么首选单引号?希望得到一些帮助。谢谢大家。 最佳答案 这只是某人的意见。很多人喜欢单引号,但也有很多人喜欢双引号。我倾向于使用双引号只是出于其他语言的习惯,但我没有强烈的偏好:如果我听到单引号更好的令人信服的理由,我愿意改变,但到目前为止我'我什至没有听到一个好的理由,更不用说一个令人信服的理由了。即使是GoogleJavaScriptStyleGuide说单引号是首选,但没有给出充分的理由:"Forconsistencysi

javascript - 在 IE 中写入脚本控制台 (console.log) 的正确方法是什么?

我在document.ready()中定义了console.log的替代品:$(document).ready(function(){console.log("docready");if(typeofconsole==="undefined"){console={log:function(){}};}}我以为IE应该有这个功能,但是,当我包含上面的调用时console.log("docready");输出出现在Firefox控制台中,但不出现在IE中-实际上IE脚本执行在此时完全中断。在IE中写入控制台的正确方法是什么? 最佳答案