1

私は特定の言語の膨大な量のコードをJavaScriptに翻訳することに取り組んでいます。ステートメントなしですべてを式として翻訳すると、私の作業はかなり簡単になります。たとえば、代わりに

f = function(a,b){
    console.log(a);
    console.log(b);
    if (a>5)
        return a+b;
    else
        return a*b;
};
console.log(f(2,2));

してただろう:

f = function(a,b){
    return console.log(a), console.log(b), (a>5?a+b:a*b);
};

人間らしくないコードがおそらくより悪く最適化されるのではないかと心配していることを除いて。この心配は有効ですか?

注:コードはどちらの方法でも読み取ることができません。

4

2 に答える 2

1

ただし、人間らしくないコードほど最適化が悪化するのではないかと心配しています。この心配は有効ですか?

一言で言えば、いいえ。将来のメンテナンスを選択しているのは、実行速度に対する懸念です。これに取り組んでいる将来のプログラマーがこれに遭遇していない場合 (a>b?a:b;)、彼らはすぐにそれを見つけて、おそらくはるかに簡潔なコードに感謝するでしょう。

同じように、私はあなたが与えた return 関数にもっと関心があります。私は確かにjs(Javaの背景)を拾っているだけですが、

return console.log(a), console.log(b), (a>5?a+b:a*b);

それはより直感的ではありません

console.log(a); console.log(b); return (a>5?a+b:a*b);
于 2012-12-16T23:07:14.050 に答える
0

個人的にはこれで行きます

var f = function(a, b){
    console.log(a);
    console.log(b);
    return ( a > 5 ? a + b : a * b);
};

クライアント側でこれを使用すると、ファイルサイズが数バイト減少します

于 2012-12-16T13:26:11.357 に答える