首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript中的__LINE__等效项

Javascript中的__LINE__等效项
EN

Stack Overflow用户
提问于 2009-01-17 09:04:48
回答 7查看 7.6K关注 0票数 17

有没有办法在Javascript中获得源码行号,就像C或PHP语言中的__LINE__

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-01-17 09:10:19

有一种方法,虽然代价更高:抛出一个异常,立即捕获它,并从它的堆栈跟踪中挖掘出第一个条目。有关如何解析跟踪的信息,请参阅示例here。同样的技巧也可以在普通Java中使用(如果代码是在打开调试信息的情况下编译的)。

编辑:显然并不是所有的浏览器都支持它。好消息是(谢谢你的评论,Christoph!)有些浏览器会导出源文件名和行号directly through the fileName and lineNumber properties of the error object

票数 10
EN

Stack Overflow用户

发布于 2009-01-17 09:15:04

简短的答案是no

长长的答案是,根据浏览器的不同,您可能会抛出异常并捕获异常并提取堆栈跟踪。

我怀疑您正在使用它进行调试(无论如何,我希望如此!)所以你最好的选择就是使用。这将为您提供一个console对象;您可以在任何时候调用console.trace()来查看您的程序正在做什么,而不会中断执行。

票数 6
EN

Stack Overflow用户

发布于 2009-08-28 10:42:45

C中的__LINE__由一个preprocessor扩展,它直接将其替换为当前输入的行号。所以,当你看到

代码语言:javascript
复制
printf("Line Number: %d\r\n", __LINE__);

编译器看到:

代码语言:javascript
复制
printf("Line Number: %d\r\n", 324);

实际上,数字(在本例中为324)被硬编码到程序中。只有这种双通道机制才能实现这一点。

我不知道PHP是如何做到这一点的(它也是经过预处理的吗?)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/453028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档