【JavaScript】動(dòng)態(tài)執(zhí)行js的方法
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
如何創(chuàng)建一個(gè)函數(shù),將一個(gè)字符串當(dāng)作代碼執(zhí)行!?。?/p> 1、eval 方法 特點(diǎn):同步;作用域是當(dāng)前運(yùn)行的作用域。 var log = '全局----我是動(dòng)態(tài)執(zhí)行的js打印'; function exec (code) { var log = '局部----log我是動(dòng)態(tài)執(zhí)行的js打印'; eval(code); } exec("console.log(log)"); console.log('sync'); 2、setTimeout 特點(diǎn):setTimeout 第一個(gè)參數(shù)是可以傳字符串的,它會(huì)自動(dòng)的將字符串當(dāng)作代碼來(lái)運(yùn)行;異步;作用域是全局作用域,不受當(dāng)前作用域影響。 var log = '全局----我是動(dòng)態(tài)執(zhí)行的js打印'; function exec (code) { var log = '局部----log我是動(dòng)態(tài)執(zhí)行的js打印'; setTimeout(code); }; exec("console.log(log)"); console.log('sync'); 3、創(chuàng)建 script 標(biāo)簽,添加到頁(yè)面 特點(diǎn):會(huì)產(chǎn)生一個(gè) script 元素;同步;作用域是全局作用域,不受當(dāng)前作用域影響。 var log = '全局----我是動(dòng)態(tài)執(zhí)行的js打印'; function exec (code) { var log = '局部----log我是動(dòng)態(tài)執(zhí)行的js打印'; const script = document.createElement("script"); script.innerHTML = code; document.head.appendChild(script); } exec("console.log(log)"); console.log('sync'); 4、Function 方法 特點(diǎn):同步;作用域是全局作用域,不受當(dāng)前作用域影響,并且不會(huì)產(chǎn)生新元素。 ***函數(shù)都是 function 的實(shí)例,在實(shí)例中的構(gòu)造函數(shù)的最后一個(gè)參數(shù)可以作為它的函數(shù)體進(jìn)行執(zhí)行。*** var log = '全局----我是動(dòng)態(tài)執(zhí)行的js打印'; function exec (code) { var log = '局部----log我是動(dòng)態(tài)執(zhí)行的js打印'; new Function(code)(); } exec("console.log(log)"); console.log('sync'); 該文章在 2024/3/22 9:01:44 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |