JavaScript预处理仿真器(计时/调试示例) 在C++中,可以省略编译代码,通过使用预处理指令来保持编译代码的快速性,不受调试代码的阻碍。

JavaScript预处理仿真器(计时/调试示例) 在C++中,可以省略编译代码,通过使用预处理指令来保持编译代码的快速性,不受调试代码的阻碍。,javascript,c++,Javascript,C++,在JavaScript中是否有相关的方法来实现这一点?我过去一直在做的是注释调试代码,但我想要一种更干净的方法来做 下面的示例显示了4条if语句,这些语句在debug设置为true时激活。然而,在生产中,我不希望在我知道它将被设置为false时对此进行4次检查。正如我提到的,我可以把它塞进一行,然后把它注释掉……但我想要一个干净的方法来做吗 /** ** cType */ function cType( o_p ) { if( debug ) { var t1,

在JavaScript中是否有相关的方法来实现这一点?我过去一直在做的是注释调试代码,但我想要一种更干净的方法来做

下面的示例显示了4条if语句,这些语句在debug设置为true时激活。然而,在生产中,我不希望在我知道它将被设置为false时对此进行4次检查。正如我提到的,我可以把它塞进一行,然后把它注释掉……但我想要一个干净的方法来做吗

/**
 **  cType
 */

function cType( o_p ) {
    if( debug ) {
        var t1, t2, t3, t4, i1, i2, i3; t1 = new Date().getTime();
    }
    o_p = MType[ o_p.model ].pre( o_p ); 
    if ( o_p.result !== 'complete' ) {
        if( debug ) {
            t2 = new Date().getTime();
            console.log( '---------------Send to Server - object_pipe: \n ' + o_p.toSource() ); 
        } 
        var string_pipe = JSON.stringify( o_p );
        cMachine( 'pipe=' + string_pipe , function( string_pipe ) {
            if( debug ) { 
                console.log( '---------------Receive from Server - object_pipe: \n ' + string_pipe ); 
                t3 = new Date().getTime();
            }
            MType[ o_p.model ].post( JSON.parse( string_pipe ) );
            if( debug ) {
                t4 = new Date().getTime(); i1 = t2-t1 ; i2 = t3-t2 ; i3 = t4-t3;
                console.log( '---------------Pre, Transit, Post = ', i1, i2, i3 );  
            }
        } );
    }
}

不,Javascript不是编译的,而是解释的。因此,除非通过另一个实用程序传递非标准Javascript(可能不再是Javascript)代码,否则不可能有预处理指令。

您始终可以通过c预处理器传递它,如:

gcc -E input.js -o output.js

这将允许您使用#if,甚至include和宏。

如果使用,您可以使用,甚至可以在优化(缩小)时禁用/启用代码片段。

您可以使用构建工具对其进行仿真…这就是我说的仿真的原因。这并不是因为您没有编译代码。但是,您可以使用一些工具,在生产中使这些条件
if(false)
。智能解释器在解析时会立即将其删除。您所说的智能解释器是什么意思?…有没有办法了解智能解释器进行了哪些优化?例如,现代浏览器。他们可能会优化这种情况。你知道如何看待优化吗?……C++中你可以查看汇编。这是GCC的一个很好的用法…我可以用它来轻松地为css和html编写动态代码……然后在构建时创建静态文件。如果这真的是开发Javascript代码的方式,我认为你应该使用CoffeeScriptIMHO,最好使用有语言意识的工具。这将给你最大的自由,同时让你的代码看起来不那么难看。对于CSS,请看。它不是在“预处理器”级别进行的。它实际上支持JavaScript。它依赖于UglifyJS,它实际解析您的代码并修剪死的分支。它非常聪明…它如何删除多余的代码?…它必须修改源代码?这是在缩小过程中发生的。在此过程中,您的代码已经通过了解析+重构。