<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 基本模塊 因為Node.js是運行在服務區端的JavaScript環境,服務器程序和瀏覽器程序相比,最大的特點是沒有瀏覽器的安全限制了,而且,服務器程序必須能接收網絡請求,讀寫文件,處理二進制內容,所以,Node.js內置的常用模塊就是為了實現基本的服務器功能。這些模塊在瀏覽器環境中是無法被執行的,因為它們的底層代碼是用C/C++在Node.js運行環境中實現的。 ## global 在前面的JavaScript課程中,我們已經知道,JavaScript有且僅有一個全局對象,在瀏覽器中,叫`window`對象。而在Node.js環境中,也有唯一的全局對象,但不叫`window`,而叫`global`,這個對象的屬性和方法也和瀏覽器環境的`window`不同。進入Node.js交互環境,可以直接輸入: ``` > global.console Console { log: [Function: bound ], info: [Function: bound ], warn: [Function: bound ], error: [Function: bound ], dir: [Function: bound ], time: [Function: bound ], timeEnd: [Function: bound ], trace: [Function: bound trace], assert: [Function: bound ], Console: [Function: Console] } ``` ## process `process`也是Node.js提供的一個對象,它代表當前Node.js進程。通過`process`對象可以拿到許多有用信息: ``` > process === global.process; true > process.version; 'v5.2.0' > process.platform; 'darwin' > process.arch; 'x64' > process.cwd(); //返回當前工作目錄 '/Users/michael' > process.chdir('/private/tmp'); // 切換當前工作目錄 undefined > process.cwd(); '/private/tmp' ``` JavaScript程序是由事件驅動執行的單線程模型,Node.js也不例外。Node.js不斷執行響應事件的JavaScript函數,直到沒有任何響應事件的函數可以執行時,Node.js就退出了。 如果我們想要在下一次事件響應中執行代碼,可以調用`process.nextTick()`: ``` // test.js // process.nextTick()將在下一輪事件循環中調用: process.nextTick(function () { console.log('nextTick callback!'); }); console.log('nextTick was set!'); ``` 用Node執行上面的代碼`node test.js`,你會看到,打印輸出是: ``` nextTick was set! nextTick callback! ``` 這說明傳入`process.nextTick()`的函數不是立刻執行,而是要等到下一次事件循環。 Node.js進程本身的事件就由`process`對象來處理。如果我們響應`exit`事件,就可以在程序即將退出時執行某個回調函數: ``` // 程序即將退出時的回調函數: process.on('exit', function (code) { console.log('about to exit with code: ' + code); }); ``` ## 判斷JavaScript執行環境 有很多JavaScript代碼既能在瀏覽器中執行,也能在Node環境執行,但有些時候,程序本身需要判斷自己到底是在什么環境下執行的,常用的方式就是根據瀏覽器和Node環境提供的全局變量名稱來判斷: ``` if (typeof(window) === 'undefined') { console.log('node.js'); } else { console.log('browser'); } ``` 后面,我們將介紹Node.js的常用內置模塊。 ## 參考源碼 [gl.js](https://github.com/michaelliao/learn-javascript/blob/master/samples/node/global/gl.js)
                  <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>

                              哎呀哎呀视频在线观看