摘要:前幾天李老哥秀了一個中騷操作給我看,即的值是各位也可以看一下臥槽,牛逼啊很好奇,如何得到這個結果,莫名其妙就得到了我第一感覺是不可能啊,可是結果就在那這就要思考了,這個是什么碼的騷操作計算得來的數字結果還是字符轉化,或是別的什么,它是通過什
前幾天李老哥秀了一個JavaScript中騷操作給我看,即++[[]][+[]]+[+[]]的值是10;
各位也可以看一下
</>復制代碼
console.log(++[[]][+[]]+[+[]])
10
臥槽,牛逼啊!
很好奇,js如何得到這個結果,莫名其妙就得到了10;我第一感覺是不可能啊,可是結果就在那;這就要思考了,這個10是什么?ASCII碼的騷操作計算得來的數字結果還是字符轉化,或是別的什么,它是通過什么方式得來的,先輸出一下它的類型:
</>復制代碼
console.log((typeof ++[[]][+[]]+[+[]]))
string
看看發現了什么?!可以走捷徑了,10是一個字符串,即是說得到是"10",由此想到了什么?沒錯,就是字符串拼接,再來看看++[[]][+[]]+[+[]]的結構和"10"本身,很明顯10是由++[[]][+[]]和[+[]]拼接的,可以大膽猜測,++[[]][+[]]結果是1,[+[]]結果是0,于是:
</>復制代碼
console.log(++[[]][+[]])
1
console.log([+[]])
[0]
猜測與結果雖有出入,卻也沒偏離太遠,問題大概解決一半了:
在JavaScript中,+[]是等于零的,就是說console.log(+[] === 0)得到的是true;
就是說呢,現在問題變成了++[[]][0]+[0]
實際上,[[]][0]意思是在數組[[]]中找到第0個元素,我們找到的會是[],這有什么意義呢,先跳過,++[[]][0]的結果為1,這里我們可以忽略[[]][0]把它當成任一個值,因為重點是++遞增運算符,我們知道++任意值意為依次加一,即是+(任意值+1),++[[]][0]可以轉為+[]+1(這里需要留意一個小細節,就是++遞增運算符會把值返回為Number類型);
所以問題就變成了1+[0],
在js中[0] == "0",
問題就變成了1+"0" === "10";
那么來猜一猜console.log(1+"0" === "10")會輸出什么?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97911.html
摘要:結論一維數組在內存中是連續存放的二維數組關于二維數組的創建二維數組中的表示行數,表示列數注意二維數組的不完全初始化剩下的元素也都默認為。示例如下關于二維數組的打印我們通過二維數組的下標來進行打印,而二維數組的行和列下標都是從開始的。 ?目錄 一維數組 關于一維數組的創建 關于數組的打印 關...
摘要:表單用于向服務器傳輸數據。屬性對象的屬性指定了一個事件句柄函數。標簽的屬性應當與相關元素的屬性相同。詳情查閱請狠狠地點擊關于對象代表表單中的一個提交按鈕在表單提交之前,觸發事件句柄,并且一個句柄可以通過返回來取消表單提交。 系列文章 關于前端上傳文件全面基礎掃盲貼(零)關于前端上傳文件全面基礎掃盲貼(一) ----- XMLHttpRequest關于前端上傳文件全面基礎掃盲貼(二) -...
摘要:安全生成安全的隨機數,加密數據,掃描漏洞的庫一個兼容標準的過濾器一個生成隨機數和字符串的庫使用生成隨機數的庫一個安全庫一個純安全通信庫一個簡單的鍵值加密存儲庫一個結構化的安全層一個試驗的面向對象的包裝庫一個掃描文件安全的庫 Security 安全 生成安全的隨機數,加密數據,掃描漏洞的庫 HTML Purifier-一個兼容標準的HTML過濾器 RandomLib-一個生成隨機數和字...
摘要:安全生成安全的隨機數,加密數據,掃描漏洞的庫一個兼容標準的過濾器一個生成隨機數和字符串的庫使用生成隨機數的庫一個安全庫一個純安全通信庫一個簡單的鍵值加密存儲庫一個結構化的安全層一個試驗的面向對象的包裝庫一個掃描文件安全的庫 Security 安全 生成安全的隨機數,加密數據,掃描漏洞的庫 HTML Purifier-一個兼容標準的HTML過濾器 RandomLib-一個生成隨機數和字...
閱讀 3518·2023-04-25 17:35
閱讀 2594·2021-11-24 09:39
閱讀 2531·2021-10-18 13:32
閱讀 3417·2021-10-11 10:58
閱讀 1638·2021-09-26 09:55
閱讀 6156·2021-09-22 15:47
閱讀 968·2021-08-26 14:15
閱讀 3473·2019-08-30 15:55