首頁>Club>
9
回覆列表
  • 1 # 使用者5116877416411

    如果是指,在JavaScript中,如何計算字串形式的“1+1”得到結果2,那麼

    首先:eval("1+1") 可以得到2,嚴格模式無法使用此方法,因為eval會被禁用

    然後還可以這樣:new Function("return 1+1")(); 透過function建構函式構造一個計算表示式函式,直接執行得到return的結果。

    前段時間見過一個東西叫做:js模擬器,透過JavaScript編寫的js類庫,可以執行字串形式的js程式碼,能夠打破嚴格模式的限制。

    最終,你可以手動編寫解析器,解析字串,手動根據字串的內容進行計算(字串拆解為數字和運算子,然後根據運算子運算元字,可以採用棧結構儲存他們,在js中使用陣列就行)

    如果你是指,js語言是如何做到計算1+1這樣原本是字串的JavaScript程式碼的:

    js裡面有語法分析器,詞法分析器,會對js的原始碼進行分析,形成語法樹,然後可以根據語法樹得到中間程式碼,最終編譯為本地二進位制程式碼並且快取(如果這段js用的不多,也可能不編譯,只是執行中間程式碼或者語法樹,二進位制程式碼是動態生成的)

  • 中秋節和大豐收的關聯?
  • 愛的力量歌詞?