国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

node.js之REPL

DevTTL / 553人閱讀

摘要:何為讀取求值輸出循環(huán)英語,簡稱是一個(gè)簡單的,交互式的編程環(huán)境。它提供了一種交互方式,即執(zhí)行程序,展現(xiàn)結(jié)果。它可以被用作,或者只是執(zhí)行操作得到一些結(jié)果。對于,宿主環(huán)境最常見的是瀏覽器。

何為REPL

wiki:

  

“讀取-求值-輸出”循環(huán)(英語:Read-Eval-Print Loop,簡稱REPL)是一個(gè)簡單的,交互式的編程環(huán)境。

node.js官方文檔(v0.12.2):

  

REPL既可以作為獨(dú)立單機(jī)程序,也可以被其他的程序包含在內(nèi)的程序。

它提供了一種交互方式,即“執(zhí)行程序,展現(xiàn)結(jié)果”。

它可以被用作debuggingtesting 或者只是執(zhí)行操作得到一些結(jié)果。

執(zhí)行REPL

打開命令行,鍵入node

$ node
> 

然后就可以當(dāng)開發(fā)環(huán)境使了

> var age = 12
undefined
> age
12


> function getAge(){
... console.log(this.age)
... }
undefined

> getAge()
12
undefined

因?yàn)?b>REPL環(huán)境內(nèi)部使用eval函數(shù)來評估該表達(dá)式的執(zhí)行結(jié)果,所以有些東西我們可以直接這樣寫,如對象:

> {a:1,b:2}
{ a: 1, b: 2 }

> [1,2,3,4,5]
[ 1, 2, 3, 4, 5 ]
下劃線 _

使用_可以指代上一次的操作執(zhí)行后的值,比如

對象:

> {a:1,b:2,c:3}
{ a: 1, b: 2, c: 3 }

> for(var key in _){
..... console.log("key : " + key + ",value : " + _[key]);
..... }

key : a,value : 1
key : b,value : 2
key : c,value : 3
//這里的_指代的是上一次執(zhí)行操作后的對象

數(shù)組:

> [1,2,3,4,5]
[ 1, 2, 3, 4, 5 ] 
> Object.keys(_)                        //這里的_指代的時(shí)上一次執(zhí)行的數(shù)組
[ "0", "1", "2", "3", "4" ]             //獲取index值

注意  下面的值不是我們的預(yù)期,因?yàn)開指代的已經(jīng)不是原先的數(shù)組了!

> _.map(function(k){return _[k]*_[k]})  
[ 0, 1, 4, 9, 16 ]                      //獲取元素值

正確的結(jié)果:

> [1,2,3,4,5]
[ 1, 2, 3, 4, 5 ]                       //數(shù)組
> Object.keys(_).map(function(k){return _[k]*_[k]})
[ 1, 4, 9, 16, 25 ]                     //元素值
內(nèi)置REPL方法

一些REPL里的方法,通過鍵入.help可以看到:

> .help
break   Sometimes you get stuck, this gets you out
clear   Alias for .break
exit    Exit the repl
help    Show repl options
load    Load JS from a file into the REPL session
save    Save all evaluated commands in this REPL session to a file
.break & .clear

作用:中斷當(dāng)前的出入
你想退出你當(dāng)前的輸入環(huán)境,使用.break 或者 .clear

> function show(){
... console.log("");
... .clear           //.clear 或 .break
> 
.exit

作用:退出REPL ;快捷鍵:

control + c

直接退出REPL,回到命令行。

.save

將當(dāng)前REPL中所有會話保存到文件中

> function sum(a,b){
... return a + b;
... }
undefined

> function substract(a,b){
... return a - b;
... }
undefined

> .save calculator.js
Session saved to:calculator.js
.load

加載文件進(jìn)入到當(dāng)前的REPL會話。

> .load calculator.js

> function sum(a,b){
... return a + b;
... }
undefined

> function substract(a,b){
... return a - b;
... }
undefined

> sum(3,5)
8

> substract(8,2)
6
最后扯幾句
  

一門語言在運(yùn)行的時(shí)候,需要一個(gè)環(huán)境,叫做宿主環(huán)境。對于JavaScript,宿主環(huán)境最常見的是web瀏覽器。

所以這時(shí)的this通常指代的時(shí)window

而在nodeREPL中,this指代的是global

> this
{ DTRACE_NET_SERVER_CONNECTION: [Function],
  DTRACE_NET_STREAM_END: [Function],
...

> this === global
true

REPL的優(yōu)勢在于:
- 可以debugging
- 做一些testing
- 快速的實(shí)踐執(zhí)行操作

done.

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/91500.html

相關(guān)文章

  • JavaScript中的遞歸

    摘要:第三次第四次設(shè)想,如果傳入的參數(shù)值特別大,那么這個(gè)調(diào)用棧將會非常之大,最終可能超出調(diào)用棧的緩存大小而崩潰導(dǎo)致程序執(zhí)行失敗。注意尾遞歸不一定會將你的代碼執(zhí)行速度提高相反,可能會變慢。 譯者按: 程序員應(yīng)該知道遞歸,但是你真的知道是怎么回事么? 原文: All About Recursion, PTC, TCO and STC in JavaScript 譯者: Fundebug ...

    Jacendfeng 評論0 收藏0
  • node學(xué)習(xí)系列基礎(chǔ)(二)

    摘要:由于這種特性,某一個(gè)任務(wù)的后續(xù)操作,往往采用回調(diào)函數(shù)的形式進(jìn)行定義。另外,回調(diào)函數(shù)本身的第一個(gè)參數(shù),約定為上一步傳入的錯(cuò)誤對象。這種寫法有一個(gè)很大的好處,就是說只要判斷回調(diào)函數(shù)的第一個(gè)參數(shù),就知道有沒有出錯(cuò),如果不是,就肯定出錯(cuò)了。 REPL環(huán)境 在命令行鍵入node命令,后面沒有文件名,就進(jìn)入一個(gè)Node.js的REPL環(huán)境(Read–eval–print loop,讀取-求值-輸出...

    zhaot 評論0 收藏0
  • JavaScript進(jìn)階’this‘

    摘要:所以相同點(diǎn)是,在全局范圍內(nèi),全局變量終究是屬于老大的。只生效一次引入了。只生效一次在箭頭函數(shù)中,與封閉詞法環(huán)境的保持一致。我通常把這些原始函數(shù)叫做構(gòu)造函數(shù)。在里面你可以嵌套函數(shù),也就是你可以在函數(shù)里面定義函數(shù)。 showImg(https://img-blog.csdnimg.cn/20190522000008399.jpg?x-oss-process=image/watermark,...

    shenhualong 評論0 收藏0
  • 使用nodejs自帶debug工具調(diào)試nodejs

    摘要:示例代碼插入斷點(diǎn)方法在需要設(shè)置斷點(diǎn)的地方插入關(guān)鍵字,程序會在這里暫停運(yùn)行。只需要在命令模式輸入,按回車便可以進(jìn)入環(huán)境。 1 示例代碼 app.js var express = require(express); var app = express(); var req_times = 0; app.all(/*, function(req, res){ req_times...

    he_xd 評論0 收藏0
  • js中this的“終極三問”

    摘要:是什么本質(zhì)是一個(gè)綁定,在函數(shù)被調(diào)用時(shí)建立。它的指向是完全由函數(shù)被調(diào)用的調(diào)用點(diǎn)來決定的。因?yàn)楹瘮?shù)的調(diào)用點(diǎn)在全局作用域,所以指向全局變量這里就是函數(shù)的調(diào)用點(diǎn)存在的意義在函數(shù)體內(nèi)部指代函數(shù)當(dāng)前的運(yùn)行環(huán)境。從而實(shí)現(xiàn)干凈的設(shè)計(jì)和更容易的復(fù)用。 this是什么? this 本質(zhì)是一個(gè)綁定, 在函數(shù)被調(diào)用時(shí)建立。它的指向是完全由函數(shù)被調(diào)用的調(diào)用點(diǎn)來決定的。 function baz() { ...

    silvertheo 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<