《Node.js权威指南》第2章Node.js中的交互式运行环境——REPL
开发者可以在该环境中很方便地输入各种JavaScript表达式并观察表达式的运行结果。
在学习Node.js框架的过程中,通过该运行环境的使用,我们可以很方便地了解Node.js中定义的各种对象所拥有的各种属性及方法。本节为大家介绍在REPL运行环境中操作变量
2.2 在REPL运行环境中操作变量
在REPL运行环境中,可以使用var关键字来定义一个变量并为其赋值,但是在输入了对其赋值进行的表达式后,该表达式的执行结果将被显示为undefined。
例如,在如下所示的两条表达式中,第一条表达式中不使用var关键字,执行结果为变量值,第二条表达式中使用var关键字,执行结果为undefined。
之所以出现这样两种不同的结果,是因为REPL环境内部使用eval函数来评估该表达式的执行结果。而在JavaScript代码中,如果将上述两条表达式作为eval函数的参数,则eval函数将返回不同的结果。
console.log("foo='bar'"); // 控制台窗口中将输出“bar” console.log("varfoo='bar'"); // 控制台窗口中将输出undefined
在REPL运行环境中为变量赋值后,我们可以通过输入变量名的方法来查看变量内容。
将简单类型的值赋值给变量后,输入变量名后按下回车键,REPL运行环境中将直接显示该变量值,输入表达式及其执行结果如下所示:
// 为变量赋值 > foo='bar'; 'bar' // 输入变量名后显示变量值 >foo 'bar'
将对象赋值给变量后,输入变量名后按下回车键,REPL运行环境中将直接显示该变量所引用对象的各属性名及属性值,输入表达式及其执行结果如下所示:
如果变量所引用对象的某个属性值为一个函数,输入变量名并输入回车键后,REPL运行环境中将把该属性值显示为“[function]”(这是因为函数中通常可能具有很多内容,如果REPL运行环境中使用函数内容来显示该属性值的话,一个变量内容往往可能会变得很长很长),输入表达式及其执行结果如下所示:
2.3 在REPL运行环境中使用下划线字符
在REPL运行环境中,可以通过下划线字符(“_”)的使用来访问最近使用的表达式。例如,将变量a赋值为3后,可以通过下划线字符来访问最近一次的表达式,输入表达式及其执行结果如下所示:
但是输入下划线并不意味着可以修改变量的值。例如,在输入将变量a赋值为3并通过下划线字符使表达式的结果加1的表达式后,紧接着输入表达式来显示变量a的值,REPL运行环境中显示变量a的值仍为3。
你可以通过下划线字符的使用来访问最近一次表达式执行结果的属性或对其执行方法,输入表达式及其执行结果如下所示:
2.4 在REPL运行环境中直接运行函数
可以在REPL运行环境中直接运行某个函数。在REPL运行环境中,可以将一个表达式(如本例中的一个函数)分为多行进行书写,当该表达式未书写完成时,REPL运行环境将为该表达式的每一行(第一行除外)添加英文省略符(三个小圆点),输入表达式及其执行结果如图2-3所示。
在REPL运行环境中,也可以在父函数中嵌套运行子函数,当父函数分为多行进行书写时,REPL运行环境将在子函数体内的每行代码之前继续添加英文省略符(三个小圆点)