sixwings
memo 小專案紀錄,網頁版命令列
sixwings
好像喜歡打指令的人最後都會受不了誘惑想開發一個自己寫的 cli 工具或是把 cli 的操作習慣移植到別的介面上
sixwings
前一陣子寫了一個 python 計算日期差幾天的小程式,那時候就覺得應該要整理成一份常用工具集,下次直接呼叫使用
sixwings
也是前一陣子,開發聊天室功能,那時候也是手癢,做了聊天室指令(斜線開頭的那串東東 ex: /nickname)。
sixwings
再來是這一次的,可以直接在網頁上打JS程式碼的功能。因為每次都要開新分頁按F12打指令實在很煩,所以想說乾脆直接在頁面上打指令就好了
sixwings
底層實作是靠 eval() 沒錯就是那個萬惡的 eval,但目前還作到一半,在賦值的時候遇到一些問題。主要是 let, const 這一類的變數宣告有自己存在的作用域,然後每一次 eval() 呼叫都是獨立的作用域,這樣會導致 let 宣告的變數在離開 eval() 就會死掉
sixwings
然後也有實作「打 x 印出 x 內容 」這種 REPL 常見的互動行為。還在嘗試看 eval() 的極限可以到哪裡?
// 據說 vue 早期版本的實作也有使用到 eval
載入新的回覆