偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何讓一個字符串執(zhí)行?

開發(fā)
eval() 函數(shù)可計算某個字符串,并執(zhí)行其中的的 JavaScript 代碼

 雖然eval()函數(shù)有這個功能但是我們還是避而遠(yuǎn)之,能不用盡量不要用。eval的執(zhí)行環(huán)境比較混亂,它會查找當(dāng)前執(zhí)行的上下文環(huán)境從而導(dǎo)致混亂。

[[342750]]

  1. let c = 1; 
  2. let d =eval(`module.exports = function(a,b){ 
  3.      return a+b+c 
  4. }`) 
  5. console.log(d(1,2))  //4  會把c也輸出 

Function
取代eval()方法的是new Function 即window.Function,不受上下文作用域的影響

  1. let z = 3; 
  2. let a = 'var a=1;return x+y+z'
  3. //最后一個參數(shù)是字符串  前面的參數(shù)是函數(shù)的形參 
  4. let fn = new Function("x","y","z",a); 
  5. console.log(fn.toString());  //function anonymous(x,y,z) {var a=1;return x+y+z} 
  6. // console.log(fn(1,2)); //NaN 
  7. //console.log(fn(1,2,3)); //6 

vm[2]
vm.runInThisContext ()在當(dāng)前全局上下文中運行代碼并返回結(jié)果。運行代碼不能訪問本地范圍,但是可以訪問當(dāng)前的全局對象。

  1. const vm = require('vm'); 
  2.  
  3. const vmResult = vm.runInThisContext('localVar = "vm";'); 
  4. console.log(vmResult)  //vm 
  5. console.log(localVar)  //vm 

  1. const vm = require('vm'); 
  2. let localVar = 'initial value'
  3.  
  4. const vmResult = vm.runInThisContext('localVar = "vm";'); 
  5. console.log(`vmResult: '${vmResult}', localVar: '${localVar}'`); 
  6. // Prints: vmResult: 'vm', localVar: 'initial value' 
  7.  
  8. const evalResult = eval('localVar = "eval";'); 
  9. console.log(`evalResult: '${evalResult}', localVar: '${localVar}'`); 
  10. // Prints: evalResult: 'eval', localVar: 'eval' 

因為vm.runInThisContext ()不能訪問本地作用域,所以 localVar 沒有更改。相比之下,eval ()確實可以訪問本地范圍,因此會更改值 localVar。

 

責(zé)任編輯:姜華 來源: 小丑的小屋
相關(guān)推薦

2023-04-25 15:46:51

Python字符串

2022-11-24 08:01:57

bash腳本字符串

2019-12-16 09:26:05

Java設(shè)計操作系統(tǒng)

2022-12-08 15:55:52

JavaScript字符串

2019-01-08 09:23:16

Java字符串編碼

2021-07-26 10:58:07

Chromebook谷歌更新

2010-10-09 13:41:42

MySQL字符串

2020-09-07 07:35:03

Grep命令字符串

2023-06-01 07:49:51

2020-11-03 18:36:37

面試字符串算法

2009-11-16 17:59:13

PHP數(shù)組轉(zhuǎn)字符串

2011-05-25 09:58:46

C#

2021-12-03 08:50:25

LeetCode正則表達(dá)式算法

2009-08-12 11:24:25

C# String對象

2023-05-05 08:41:16

SQL字符函數(shù)

2020-06-28 14:18:23

Python代碼開發(fā)

2010-09-26 13:51:48

SQL游標(biāo)

2009-12-15 15:35:56

Ruby symbol

2023-10-10 08:24:12

2021-07-14 06:40:02

矩陣路徑字符串
點贊
收藏

51CTO技術(shù)棧公眾號