<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # REPL ~~~ 穩定度: 3 - 穩定 ~~~ 一個 Read-Eval-Print-Loop(REPL,讀取-執行-輸出循環)既可用于獨立程序也可很容易地被集成到其它程序中。REPL 提供了一種交互地執行 JavaScript 并查看輸出的方式。它可以被用作調試、測試或僅僅嘗試某些東西。 在命令行中不帶任何參數執行 `node` 您便會進入 REPL。它提供了一個簡單的 Emacs 行編輯。 ~~~ mjr:~$ node Type '.help' for options. > a = [ 1, 2, 3]; [ 1, 2, 3 ] > a.forEach(function (v) { ... console.log(v); ... }); 1 2 3 ~~~ 若想使用高級的編輯模式,設置環境變量 `NODE_NO_READLINE=1` 后運行 node。這將在允許你在可以使用 `rlwrap` 的終端上,啟動高級的 REPL 模式 (the main and debugger REPL)。 例如,您可以將下列代碼加入到您的 bashrc 文件: ~~~ alias node="env NODE_NO_READLINE=1 rlwrap node" ~~~ ### repl.start(options) 啟動并返回一個 `REPLServer` 實例。接受一個包含如下內容的 "options" 對象: - `prompt` - 所有輸入輸出的提示符。默認是 `>` . - `input` - 監聽的可讀流。默認指向標準輸入流 `process.stdin`。 - `output` - 用來輸出數據的可寫流。默認指向標準輸出流 `process.stdout`。 - `terminal` - 如果 `stream` 應該被當做 TTY 來對待并且有 ANSI/VT100 轉義時,則傳 `true`。 默認使用 `output` 實例的 `isTTY`來檢查。 - `eval` - 用來對每一行進行求值的函數。 默認為`eval()`的一個異步包裝函數。下面給出一個自定義`eval`的例子。 - `useColors` - 一個布爾值,表明了`writer`函數是否會輸出顏色。如果設定了一個不同的`writer`函數,那么這不會產生任何影響。默認為repl的`terminal`值。 - `useGlobal` - 如果設定為`true`,那么repl就會使用`global`對象而不是在一個獨立環境里運行腳本。默認為`false`。 - `ignoreUndefined` - 如果設定為`true`,那么repl將不會輸出未定義命令的返回值。默認為`false`。 - `writer` - 每一個命令被求值時都會調用此函數,而該函數會返回顯示的格式(包括顏色)。默認為`util.inspect`。 `util.inspect`. 你可以使用你自己的`eval`函數,只有它有如下的簽名: ~~~ function eval(cmd, context, filename, callback) { callback(null, result); } ~~~ 多個REPL可以在同一個運行的節點實例上打開。它們共享同一個global對象,但分別有各自的I/O。 以下是通過標準輸入流(stdin)、Unix socket 以及 TCP socket 三種情況來啟動 REPL 的例子: ~~~ net.createServer(function (socket) { connections += 1; repl.start({ prompt: "node via TCP socket> ", input: socket, output: socket }).on('exit', function() { socket.end(); }); }).listen(5001); ~~~ 從命令行運行該程序,將會從標準輸入流啟動 REPL 模式。 其他的 REPL 客戶端也可以通過 Unix socket 或者 TCP socket 連接。 `telnet` 常用于連接 TCP sockets,而 `socat` 則可以同時用來連接 Unix 和 TCP sockets。 通過從一個Unix的套接字服務器而不是stdin來啟動REPL, 你可以連接到一個長久運行的node進程而不不需要重啟。 一個在`net.Server`和`net.Socket`實例上運行的"全功能"(`terminal`)REPL的例子可以查看這里: [https://gist.github.com/2209310](https://gist.github.com/2209310) 一個在`curl(1)`上運行的REPL實例的例子可以查看這里: [https://gist.github.com/2053342](https://gist.github.com/2053342) ### 事件: 'exit' `function () {}` 當用戶通過任意預定義的方式退出REPL,該事件被分發。比如,在repl里輸入`.exit`,按Ctrl+C兩次來發送SIGINT信號,或者在`input`流上按Ctrl+D來發送"end"。 監聽 `exit` 事件的例子: ~~~ r.on('exit', function () { console.log('從 REPL 得到 "exit" 事件!'); process.exit(); }); ~~~ ### 事件: 'reset' `function (context) {}` 當REPL的上下文被重置時,該事件被分發。當你打`.clear`命令時這種情況就會發生。如果你以`{ useGlobal: true }`來啟動repl,那么這個事件就永遠不會被分發。 監聽`reset`的例子: ~~~ // 當一個新的上下文被創建時,擴充這個上下文。 r.on('reset', function (context) { console.log('repl有一個新的上下文'); someExtension.extend(context); }); ~~~ ### REPL 特性 在REPL里,Control+D會退出。可以輸入多行表達式。對于全局變量和本地變量都支持自動縮進。 特殊變量 `_` (下劃線)儲存了上一個表達式的結果。 ~~~ > [ "a", "b", "c" ] [ 'a', 'b', 'c' ] > _.length 3 > _ += 1 4 ~~~ REPL提供了訪問global域里所有變量的權限。通過將一個變量賦值給與每一個`REPLServer`關聯的`context`對象,你可以顯式地將一個變量暴露給REPL。例如: ~~~ repl.start("> ").context.m = msg; ~~~ 在`context`對象里的東西,會在REPL以本地變量的形式出現。 ~~~ mjr:~$ node repl_test.js > m 'message' ~~~ 有幾個特殊的REPL命令: - `.break` - 當你輸入一個多行表達式時,有時你走神了或者你不想完成這個表達式了。`.break`讓你可以重頭再來。 - `.clear` - 重置`context`對象為一個空對象,并且清除所有的多行表達式。 - `.exit` - 關閉I/O流,使得REPL退出。 - `.help` - 顯示這個特殊命令的列表。 - `.save` - 將當前的REPL會話保存到一個文件 > .save ./file/to/save.js - `.load` - 將一個文件裝載到當前的REPL會話。 > .load ./file/to/load.js 下面的組合鍵在REPL中有以下效果: - `<ctrl>C` - 與`.break`關鍵字類似。終止正在執行的命令。在一個空行連按兩次會強制退出。 - `<ctrl>D` - 與`.exit`關鍵字類似。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看