一般情況下煤辨,在JS中定義變量裳涛,是使用var木张、let、const端三。
比如:var abc =1;
但如果你不希望別人看到你定義了一個變量abc舷礼,該怎么辦呢?
可以這樣寫:this["abc"]=1;
這樣便也定義了一個變量abc郊闯。
捌尴住?能這么寫嗎团赁?能育拨!不信?測試運行一下就知道了欢摄。
但這還是看到了abc字符串至朗,也看到了賦值的內(nèi)容是數(shù)字1。有沒有辦法更隱藏一些呢剧浸?
有锹引,還可以用JShaman對這一行代碼進行混淆。
混淆之后唆香,this["abc"]=1;會變成:
this["\u0061\u0062\u0063\u0064"]=0x3ba17^0x3ba16;
這時嫌变,如果進行console.log(abc)或alert(abc),會看到變量abc的值1被輸出了。
但在這行代碼中躬它,一眼看去腾啥,即不存在變量abc,也沒有數(shù)值1冯吓。
是不是很有意思呢倘待?
這樣的JS編程技巧,你學(xué)會了嗎组贺?