一般情況下,在JS中定義變量,是使用var、let、const。
比如:var abc =1;
但如果你不希望別人看到你定義了一個(gè)變量abc,該怎么辦呢?
可以這樣寫(xiě):this["abc"]=1;
這樣便也定義了一個(gè)變量abc。
啊?能這么寫(xiě)嗎?能!不信?測(cè)試運(yùn)行一下就知道了。
但這還是看到了abc字符串,也看到了賦值的內(nèi)容是數(shù)字1。有沒(méi)有辦法更隱藏一些呢?
有,還可以用JShaman對(duì)這一行代碼進(jìn)行混淆。
混淆之后,this["abc"]=1;會(huì)變成:
this["\u0061\u0062\u0063\u0064"]=0x3ba17^0x3ba16;
這時(shí),如果進(jìn)行console.log(abc)或alert(abc),會(huì)看到變量abc的值1被輸出了。
但在這行代碼中,一眼看去,即不存在變量abc,也沒(méi)有數(shù)值1。
是不是很有意思呢?
這樣的JS編程技巧,你學(xué)會(huì)了嗎?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.