摘要:構造的這個函數有個形參,作為函數體中立即執行表達式的實參傳入最內層的函數中。所以在最后執行的時候便會獲得的內容。
作者 @zwhu
原文章 @github
最近在用 node 學寫爬蟲,也可以叫模擬登陸,遇到某個網站在返回的 HTML 中插入了一個生成頁面token的script。
這個HTML的結構大概類似
首先拿到這個頁面,然后獲取script標簽的表達式字符串,剩下的事就是怎樣執行表達式字符串,并獲取token。
在此處的情景中用eval也是挺不錯的選擇,但是既然 JS 不推薦這種用法,那我們就換成 new Function 來做。
看下 new Function 的用法如下
new Function ([arg1[, arg2[, ...argN]],] functionBody)
new Function會返回一個函數。例如 fn = new Function("a", "b", "return a + b") 會返回一個函數對象
fn = function(a, b) { return a + b }
so,我們可以使用 new Function 構造一個函數,用來執行獲取到得表達式,并返回token。
fn = new Function("window", functionBody + ";return window.token") var token = fn({}) console.log(token)
構造的這個函數有個window形參,作為函數體中立即執行表達式的實參傳入最內層的函數中。所以在最后執行的時候 return window.token 便會獲得token 的內容。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86055.html
摘要:第三部分介紹一種模板引擎,之所以介紹他是因為。。。。三簡介模板引擎是數據與界面分離工作中最重要一環。是新一代模板引擎,它采用預編譯方式讓性能有了質的飛躍,并且充分利用引擎特性,使得其性能無論在前端還是后端都有極其出色的表現。 嗯,這也是一個學習筆記,材料均來自網絡,有改動。。文章主要分為三部分,第一部分通過實現一個簡易的ERB模板引擎來介紹其原理,參考javascript模板引擎和實現...
摘要:模板通常用來定義顯示的形式,能夠使得數據展現更為豐富,而且容易維護。從模板引擎的實現上看,需要依賴編程語言的動態編譯或者動態解釋的特性,以簡化實現和提高性能。本文就來實現一個簡易的模板引擎,以展現的強大之處。 模板簡介 模板通常是指嵌入了某種動態編程語言代碼的文本,數據和模板通過某種形式的結合,可以變化出不同的結果。模板通常用來定義顯示的形式,能夠使得數據展現更為豐富,而且容易維護。...
摘要:強制參數和返回值注釋必須包含類型信息和說明。如果重寫的形參個數類型順序和返回值類型均未發生變化,可省略,僅用標識,否則仍應作完整注釋。 轉載:原地址 1 前言 JavaScript在百度一直有著廣泛的應用,特別是在瀏覽器端的行為管理。本文檔的目標是使JavaScript代碼風格保持一致,容易被理解和被維護。 雖然本文檔是針對JavaScript設計的,但是在使用各種JavaScr...
摘要:學習目標掌握編程的基本思維掌握編程的基本語法我們先來學習基礎,后續會講解高級。語句基本語法當循環條件為時,執行循環體,當循環條件為時,結束循環。基礎語法循環體循環條件代碼示例初始化變量循環體自增循環條件語句和一般用來解決無法確認次數的循環。 學習目標: 掌握編程的基本思維 掌握編程的基本語法 我們先來學習JavaScript基礎,后續會講解JavaScript高級。 重點內容 變...
摘要:學習目標掌握編程的基本思維掌握編程的基本語法我們先來學習基礎,后續會講解高級。語句基本語法當循環條件為時,執行循環體,當循環條件為時,結束循環。基礎語法循環體循環條件代碼示例初始化變量循環體自增循環條件語句和一般用來解決無法確認次數的循環。 學習目標: 掌握編程的基本思維 掌握編程的基本語法 我們先來學習JavaScript基礎,后續會講解JavaScript高級。 重點內容 變...
閱讀 3759·2021-11-25 09:43
閱讀 2191·2021-11-23 10:13
閱讀 823·2021-11-16 11:44
閱讀 2369·2019-08-29 17:24
閱讀 1384·2019-08-29 17:17
閱讀 3480·2019-08-29 11:30
閱讀 2584·2019-08-26 13:23
閱讀 2345·2019-08-26 12:10