代码之家  ›  专栏  ›  技术社区  ›  peter

Ruby的\uu LINE\uuuuuu和\uu FILE\uuuuuuu常量的Javascript等价物

  •  1
  • peter  · 技术社区  · 6 年前

    我主要使用Ruby编写代码,但偶尔需要浏览器前端的javascript,并使用Chrome控制台调试javascript代码。

    有时很难跟踪代码行生成的输出,我必须在行的右端进行交叉检查以查看行号,如果有很多内容,这并不容易,而且这个行号并不总是与源文件中的行相对应,使用模板时通常会有偏移。

    在Ruby中 __FILE__ 常量,其中包含源代码文件路径和 __LINE__ 常量,其中包含正在执行的代码的行号。

    所以a p [__LINE__, "what i want to view"] 给我行号,后跟“我想查看的内容”。是否有javascript/Chrome的等效版本?

    目前我使用

    console.log(20, "what I want to view")
    

    对于第20行的代码,您可以想象这需要做很多更改。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Community frankie liuzzi    4 年前

    是否有javascript/Chrome的等效版本?

    恐怕没有对等的。它根本不存在。使用时,devtools会自动记录所引用的行号 console.xyz 恐怕是最接近你的了。


    目前我使用

    console.log(20, "what I want to view")
    

    对于第20行的代码,您可以想象这需要做很多更改。

    FWIW,与其使用(如您所说)需要更改的行号,不如考虑使用不需要更改但很容易找到的标记,例如:

    console.log("*A*", "what I want to view");
    

    不需要太多更新。

    当然,可能有一些日志框架做得更好。或者,为替换了 __FILE__ __LINE__ 文件名和行号。。。(或者可能是 Babel plugin 虽然 __文件__ 可能很棘手;解析阶段保留行号,但因为它可能甚至不知道源文件来自哪个文件,或者甚至不知道它是否来自某个文件[与另一个工具的输出相反]…)