主頁 > 知識庫 > 邪惡的eval和new Function使用介紹

邪惡的eval和new Function使用介紹

熱門標簽:鐵路電話系統(tǒng) 呼叫中心市場需求 銀行業(yè)務(wù) 檢查注冊表項 網(wǎng)站文章發(fā)布 智能手機 美圖手機 服務(wù)器配置

代碼:

復(fù)制代碼 代碼如下:

// 友善提醒:為了你的手指安全,請在Chrome下運行
'alert("hello")'.replace(/.+/, eval);
'alert("hello")'.replace(/.+/, function(m){new Function(m)();});

var i = 0; eval(new Array(101).join('alert(++i);'));
var i = 0; new Function(new Array(101).join('alert(++i);'))();


解釋:
1、string.replace(regexp, replacement): replacement可以是function. In this case, the function is invoked for each match, and the string it returns is used as the replacement text.

2、new Function(argument_names..., body): 注意參數(shù)中的body. 這樣,用new Function('body')()
, 也可以像eval一樣動態(tài)執(zhí)行代碼。

3、array.join(separator): 這個最簡單,不多說。在這里,巧妙的用來解決了一個無聊問題:寫段代碼,運行后打印出從1到100的整數(shù),不允許使用循環(huán)、跳轉(zhuǎn)和遞歸。

這些代碼可以干什么?可以肯定的是可以干很多猥瑣的事。具體是啥呢,自己想啰。

您可能感興趣的文章:
  • javascript使用eval或者new Function進行語法檢查
  • 詳解new function(){}和function(){}() 區(qū)別分析
  • function, new function, new Function之間的區(qū)別
  • Eval and new funciton not the same thing

標簽:河南 紅河 沈陽 樂山 滄州 新疆 上海 長治

巨人網(wǎng)絡(luò)通訊聲明:本文標題《邪惡的eval和new Function使用介紹》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266