2016-11-05 62 views
-1

所以我在一個網站上,我偷看了源代碼,所有的JavaScript代碼都被混淆了(像往常一樣)。我不知道是什麼混淆代碼是正常的,但我認爲它是這樣的:混淆代碼是什麼意思?

var1 > 10/2, var1 = 0 

相同

if(var1 > 10/2){ 
    var1 = 0; 
} 

是這是怎麼回事?如果沒有,請告訴。

+1

沒有那些都是不一樣的。 https://www.google.com/search?q=what+is+obfuscated+code –

+1

不。這是使用逗號運算符,所以這些都將被評估,但只有第二個將被返回。這必須是你沒有展示的更大的東西的一部分,因爲現在它是毫無意義的,因爲它解決了'var1> 10/2; var1 = 0'。 – vlaz

回答

2

將代碼放入console.log中的某個括號內時,可以看到發生了什麼。您需要一些額外的括號,因爲console.log讀取逗號作爲參數的分隔符。

Comma Operator

逗號操作評估每個操作數的(從左至右),並返回最後一個操作數的值。

var var1; 
 
console.log(var1);      // undefined 
 
console.log((var1 > 10/2, var1 = 0)); // 0 
 
console.log(var1);      // 0

+1

謝謝,我現在明白了 – MasterPtato