這意味着什麼?將javascript代碼翻譯爲模式可讀代碼,其中if和else
e[i] == "-" && (s > 1 || d === null) && ++s, !s && d !== null && (p.push(e[i]), s = 2), "+-".indexOf(e[i]) < (d = null) && (c = 1);
不能沒有任何邏輯看了這麼多sumbols
這意味着什麼?將javascript代碼翻譯爲模式可讀代碼,其中if和else
e[i] == "-" && (s > 1 || d === null) && ++s, !s && d !== null && (p.push(e[i]), s = 2), "+-".indexOf(e[i]) < (d = null) && (c = 1);
不能沒有任何邏輯看了這麼多sumbols
if (e[i] == "-" && (s > 1 || d === null))
++s;
if (!s && d !== null) {
p.push(e[i]);
s = 2;
}
if ("+-".indexOf(e[i]) < (d = null))
c = 1;
如果你不來一個C的背景下,在最後if
分配可能不能吸引你;在這種情況下:
d = null;
if ("+-".indexOf(e[i]) < null)
c = 1;
嘗試加入一些空格和換行:
e[i] == "-" && (s > 1 || d === null) && ++s,
!s && d !== null && (p.push(e[i]), s = 2),
"+-".indexOf(e[i]) < (d = null) && (c = 1);
注意,這是一個逗號表達式 - 它是用逗號分隔的3個表達式。每個表達式實際上是去
condition && action;
你可以逃脫在C,因爲這樣&&
作品的聲明。對於表達式A && B
,執行第一個A,並且只有在A的結果爲真時才執行,然後執行。所以自己A && B;
可以翻譯爲if(A) B;
。當然這隻有在不使用整個表達式A && B
的結果時纔有效。
您是否正在嘗試對縮小的代碼進行反向工程?這是什麼意思? –
作業嗎? –
它是mathparser的免費代碼的一部分,我在那個字符串中有一個問題,但我無法修復它,因爲我不明白這樣的語法。任何幫助將受到歡迎! – Mar