iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
Modern Web

JS 忍者訓練計畫系列 第 18

忍者煉金術:執行期間程式計值(上) Day17

  • 分享至 

  • xImage
  •  

JavaScript 提供許多能在執行期間可以直譯程式碼的各種方式,稱為程式計值。除了知道實際應用的場餅,例如壓縮或轉換,也要知道其帶有安全性上的風險跟處理,而處理過後又如何執行等等。而先從基本的幾個計值的方式開始學習。

這章想學到什麼?

  • 以 eval()方法計值
  • 透過函式建構式來計值
  • 計值與計時器
  • 在全域範圍內計值

程式碼閱讀練習與撰寫

以 eval()方法計值

var ninja = eval("({name: 'Ninja'})");

var fn = eval("(function(){return 'Ninja';})");

透過函式建構式來計值

var add = new Function("a", "b", "return a + b;");
add(3, 8); //11

計值與計時器

計時器 setTimeout / setInterval 除了使用 callbacl 之外,還可以把字串當作程式把計值。

var tick = window.setTimeout("console.log('hello')", 100)

在全域範圍內計值

(function(){
    eval("var test = 5;");
})();

console.log(test === 5); //true

參考資料

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval


上一篇
馴服執行緒和計時器(下) Day16
下一篇
忍者煉金術:執行期間程式計值(下) Day18
系列文
JS 忍者訓練計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言