欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS技巧之一行賦值語句能玩出多少花樣

 更新時間:2022年10月18日 11:49:13   作者:w2sfot  
很多前端只會謝謝頁面,一讓他們接觸js,就非常害怕,下面這篇文章主要給大家介紹了關(guān)于JS技巧之一行賦值語句能玩出多少花樣的相關(guān)資料,需要的朋友可以參考下

前言

今天,來做個測試,看看一行簡單的JS賦值語句,有多少種寫法。

測試語句,僅三行:

var a=1;
a=2;
console.log(a);

針對第二行a=2賦值,看能變多少花樣。

第一種變化、寫入到自執(zhí)行函數(shù)中:

var a=1;
(function(){
a=2;
})();
console.log(a);

第二種變化、用eval執(zhí)行:

var a=1;
eval(a=2);
console.log(a);

這兩種,都比較初級,小白等級的程序員也能輕松看懂。

接下來,提升一些難度。

第三種變化、變形的eval執(zhí)行:

對eval中的賦值語句,進(jìn)行一些變化。

var a=1;
var b=["a","=",2];
eval(b[0]+b[1]+b[2]);
console.log(a);

但eval,似乎也就能玩到這個水準(zhǔn)。下面再展示些難度更高的。

第四種變化、利用構(gòu)造函數(shù):

var a=1;
[].constructor.constructor(a=2);
console.log(a);

或:

var a=1;
[].constructor.constructor(a=2)();
console.log(a);

第五種變化、構(gòu)造函數(shù)再升級:

var a=1;
var b=["a","=",2];
[].constructor.constructor(b[0]+b[1]+b[2])();
console.log(a);

如同eval執(zhí)行內(nèi)容變化一樣,對構(gòu)造執(zhí)行代碼也用數(shù)組內(nèi)容拼接的方式進(jìn)行變形:

第六種變化、構(gòu)造函數(shù)變形:

將構(gòu)造字符也放入數(shù)組中:

var a=1;
var b=["a","=",2,"constructor"];
[][b[3]][b[3]](b[0]+b[1]+b[2])();
console.log(a);

第七種變化、混淆加密:

將上面的JS代碼用JShaman進(jìn)行混淆加密:

得么混淆加密的JS代碼,這時數(shù)值也被加密:

/*Obfuscated by JShaman.com*/
var a=0x2c0f8^0x2c0f9;
var b=['a','=',0xe3b2c^0xe3b2e,'constructor'];
[][b[0xa8ddf^0xa8ddc]][b[0xb3a35^0xb3a36]](b[0x3333f^0x3333f]+b[0x84d18^0x84d19]+b[0x50958^0x5095a])();
console['log'](a);

玩這些花樣有什么用處嗎?

當(dāng)然是有的,最后得到的代碼,完全看不出是在執(zhí)行a=2,賦值操作被隱藏了:

當(dāng)需要對代碼進(jìn)行加密,防止被他人任意閱讀時,這是很有用的方法。

你還有什么新奇的寫法嗎,歡迎探討交流。

總結(jié)

到此這篇關(guān)于JS技巧之一行賦值語句能玩出多少花樣的文章就介紹到這了,更多相關(guān)JS賦值語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript之BOM?location對象+navigator對象+history?對象

    JavaScript之BOM?location對象+navigator對象+history?對象

    這篇文章主要介紹了JavaScript?BOM中的?location對象、navigator對象、history?對象,下面圍繞他們的相關(guān)語法及各種資料展開文章詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對大家有所幫助
    2021-12-12
  • JavaScript實現(xiàn)簡單的星星評分效果

    JavaScript實現(xiàn)簡單的星星評分效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)簡單的星星評分效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JS調(diào)用打印機(jī)功能簡單示例

    JS調(diào)用打印機(jī)功能簡單示例

    這篇文章主要介紹了JS調(diào)用打印機(jī)功能的方法,結(jié)合完整實例形式分析了javascript打印機(jī)功能的相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下
    2016-11-11
  • 基于javascript實現(xiàn)的快速排序

    基于javascript實現(xiàn)的快速排序

    本篇文章主要介紹了javascript實現(xiàn)的快速排序的方法與原理說明:找基準(zhǔn)點(diǎn)、建立二個數(shù)組分別存儲、遞歸。需要的朋友來看下吧
    2016-12-12
  • 微信小程序?qū)崿F(xiàn)分頁功能

    微信小程序?qū)崿F(xiàn)分頁功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)分頁功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 微信小程序利用for循環(huán)解決內(nèi)容變更問題

    微信小程序利用for循環(huán)解決內(nèi)容變更問題

    這篇文章主要介紹了微信小程序利用for循環(huán)解決內(nèi)容變更問題 ,本文分步驟通過實例代碼詳解給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • JavaScript?中的數(shù)據(jù)類型Number

    JavaScript?中的數(shù)據(jù)類型Number

    這篇文章主要介紹了JavaScript?中的數(shù)據(jù)類型Number,Number?類型使用?IEEE?754?格式表示整數(shù)和浮點(diǎn)值,下文相關(guān)詳細(xì)資料介紹,需要的小伙伴可以參考一下
    2022-04-04
  • Javascript連接Access數(shù)據(jù)庫完整實例

    Javascript連接Access數(shù)據(jù)庫完整實例

    這篇文章主要介紹了Javascript連接Access數(shù)據(jù)庫的方法,涉及javascript針對access數(shù)據(jù)庫的連接、關(guān)閉及增刪改查等常用操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • JavaScript中setTimeout的那些事兒

    JavaScript中setTimeout的那些事兒

    JavaScript中setTimeout的那些事兒到底有什么?setTimeout單線程、延遲時間等,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 18個高頻使用的JS工具方法總結(jié)

    18個高頻使用的JS工具方法總結(jié)

    這篇文章主要為大家分享一下18個在項目中使用很高頻的JS工具方法,希望大家能夠知其然也知其所以然,不要只會調(diào)用?api,也要會寫?api,快跟隨小編一起學(xué)習(xí)一下吧
    2022-04-04

最新評論