NodeJs>------->>第二章:Node.js中交互式运行环境--------REL
第二章:Node.js中交互式运行环境--------REL

一:REPL运行环境概述



1 C:\Users\junliu>node
2 > foo = 'bar' ;
3 'bar'
4 >



二:在REPL运行环境中操作变量

1 C:\Users\junliu>node
2 > foo='bar'
3 'bar'
4 > var foo='bar'
5 undefined
6 >

1 console.log("foo='bar'"); //控制台窗口中将输出“bar”
2 console.log("var foo='bar'");//控制台窗口中将输出 undefined

1 //为变量赋值
2 > foo='bar';
3 'bar'
4 //输入变量名后显示变量值
5 > foo
6 'bar'
7 >

1 //将对象赋值给变量
2 > user =new Object();
3 {}
4 > user.Name='liujun';
5 'liujun'
6 > user.age='25';
7 '25'
8 //输入变量名后显示变量所引用对象的各属性名及属性值
9 > user
10 { Name: 'liujun', age: '25' }
11 >

1 //将对象赋值给变量
2 > user =new Object();
3 {}
4 > user.Name='liujun';
5 'liujun'
6 > user.age='25';
7 '25'
8 > user
9 { Name: 'liujun', age: '25' }
10 //输入变量后显示变量所引用对象的各属性名及属性值,使用“【function】”来显示函数
11 > user.setName=function(name){user.name=name};
12 [Function]
13 > user
14 { Name: 'liujun', age: '25', setName: [Function] }
15 >
三:在REPL运行环境中使用下划线字符

1 > a=3;
2 3
3 > _+=1;
4 Expression assignment to _ now disabled.
5 4
6 > a
7 3
8 >

1 > a=3;
2 3
3 > _+=1;
4 Expression assignment to _ now disabled.
5 4
6 > a
7 3
8 >

1 C:\Users\junliu>node
2 > ['1','2','3']
3 [ '1', '2', '3' ]
4 > _.length;
5 3
6 > [1,2,3,4,5,5];
7 [ 1, 2, 3, 4, 5, 5 ]
8 > _.length;
9 6
10 > 6+3;
11 9
12 > _.toString();
13 '9'
14 >
四:在REPL运行环境中直接运行函数

以下是在REPL运行环境中运行函数
1 C:\Users\junliu>node
2 > a=[1,1,1,3];
3 [ 1, 1, 1, 3 ]
4 > a.forEach(function(v){
5 ... console.log(v);
6 ... });
7 1
8 1
9 1
10 3


以下为:REPL运行环境将为子函数继续添加省略号
1 C:\Users\junliu>node
2 > a=[1,1,2,3,4,5]
3 [ 1, 1, 2, 3, 4, 5 ]
4 > a.forEach(function(v){
5 ... console.log(v);
6 ... });
7 1
8 1
9 2
10 3
11 4
12 5
13 undefined
14 > a.forEach(function(v){
15 ... sf(v);
16 ... function sf(vv){
17 ..... console.log(vv);
18 ..... }
19 ... });
20 1
21 1
22 2
23 3
24 4
25 5
26 undefined
五:在REPL运行环境中定义并启动服务器


1 > var http=require('http');
2 undefined
3 > http.createServer(function (req,res){
4 ... res.writeHead(200, {'Content-Type': 'text/html'});
5 ... res.write('<head><meta charset="utf-8"/></head>');
6 ... res.end('你好\n');
7 ... }).listen(1337, "127.0.0.1");
8 Server {
9 domain:
10 Domain {
11 domain: null,
12 _events: { error: [Function] },
13 _eventsCount: 1,
14 _maxListeners: undefined,
15 members: [] },
16 _events:
17 { request: [Function],
18 connection: [Function: connectionListener] },
19 _eventsCount: 2,
20 _maxListeners: undefined,
21 _connections: 0,
22 _handle: null,
23 _usingSlaves: false,
24 _slaves: [],
25 _unref: false,
26 allowHalfOpen: true,
27 pauseOnConnect: false,
28 httpAllowHalfOpen: false,
29 timeout: 120000,
30 _pendingResponseData: 0 }
31 > console.log('Server running at http://127.0.0.1:1337/')
32 Server running at http://127.0.0.1:1337/
33 undefined
34 >
六:REPL运行环境中的上下文对象


1 var repl = require("repl");
2 var con=repl.start("> ").context;
3 con.msg="示例消息";
4 con.testFunction=function(){console.log(con.msg);};

七:REPL运行环境中的基础命令



1 > a=[2,3,4,5,6,7];
2 [ 2, 3, 4, 5, 6, 7 ]
3 > _.length;
4 6
5 > a.forEach(function(v){
6 ... subF(v);
7 ... function subF(vv){
8 ..... console.log(vv);
9 ..... }
10 ... });
11 2
12 3
13 4
14 5
15 6
16 7
17 undefined
18 > a.forEach(function(v){
19 ... subF(v);
20 ... function subF(vv){
21 ..... console.log(vv);
22 ..... break;
23 break;
24 ^^^^^
25
26 SyntaxError: Illegal break statement
27
28 >


按两次Ctrl+c 退出REPL环境
使用.clear方法清除上下文对象中保存的所有变量和函数





使用 .help 命令显示所有的基础命令




1 a=[1,2,3,4,5,6,69,8,7,8,8];
2 a.forEach(function(v){
3 sf(v);
4 function sf(vv){
5 console.log(vv);
6 }
7 });


八:小结

NodeJs>------->>第二章:Node.js中交互式运行环境--------REL的更多相关文章
- 第 2 章 Node.js 中的交互式运行环境 —— REPL
本章内容包括: 如何使用REPL运行环境以及如何在该运行环境中测试各种JavaScript表达式. 如何定义并启动REPL运行环境. Node.js 框架中为REPL运行环境提供了哪些命令以及这些命令 ...
- 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
[摘要] 官网博文翻译,nodejs中的定时器 示例代码托管在:http://www.github.com/dashnowords/blogs 原文地址:https://nodejs.org/en/d ...
- 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
目录 Event Loop 是什么? Event Loop 基本解释 事件循环阶段概览 事件循环细节 timers pending callbacks poll阶段 check close callb ...
- Node.js中的URL
Node.js中的URL 什么是URL URL是Uniform Location Resource的缩写,翻译为"统一资源定位符",也就是描述资源位置的固定表示方法.被URL描述的 ...
- 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...
- 第 1 章 Node.js 介绍
本章内容包括: 什么是 Node.js 框架,为什么要用 Node.js 框架,使用 Node.js 框架能够解决什么问题,在哪些场合下应该考虑使用 Node.js 框架. 如何下载 Node.js ...
- 在Node.js中使用RabbitMQ系列二 任务队列
在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心 ...
- [转]在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
本文转自:https://www.cnblogs.com/kongxianghai/p/5582661.html Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用Ja ...
- node.js中process进程的概念和child_process子进程模块的使用
进程,你可以把它理解成一个正在运行的程序.node.js中每个应用程序都是进程类的实例对象. node.js中有一个 process 全局对象,通过它我们可以获取,运行该程序的用户,环境变量等信息. ...
随机推荐
- 惊喜的gift
情侣的饰品吧!我之前在淘宝上买了一套,挺好的,很好看呢!男的手链,女的项链,手链需要项链的钥匙才能打得开,女孩子应该都会很喜欢的吧!至少我很喜欢!而且价格也不贵,150块人民币都不到,很适合当生日礼物 ...
- HTML中使用<input>添加的按钮打开一个链接
在HTML中,<form>表单的<input type="button">可以添加一个按钮.如果想让该按钮实现<a> 的超链接功能,需要如下实现 ...
- Python pickle模块
python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...
- java日期相关
JAVA中获得一个月最大天数的方法 参考博客:http://www.cnblogs.com/relucent/p/4566582.html Calendar 类是一个抽象类,为日历字段之间的转换提供了 ...
- js格式化input输入框内容(每几位分一组,并使用特定字符分隔)
<html> <head> <title></title> </head> <body> <input id=" ...
- 【JUC】JDK1.8源码分析之ReentrantReadWriteLock
重入锁ReentrantLock是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少.然而读服务不存在数据竞争问题,如果一个线程在读 ...
- B树学习总结
1,B树的基本介绍 ①B树,相比于二叉树.红黑树而言,它的特点就是树的高度比其他类型的树要低很多.如何做到低呢?B树中的每个结点的分支数目非常大,即每个结点有很多很多孩子结点.这样,在相同结点数目情况 ...
- 通过read()读文件
一.在POSIX中的定义 #include <unistd.h> ssize_t read(int fd, void *buf, size_t len); 二.调用read()的可能结果 ...
- u-boot移植(八)---代码修改---存储控制器--MMU
一.MMU介绍 1.1 虚拟地址与物理地址 建立两个应用程序,hello1.c和hello2.c,然后运行: hello1.c hello2.c 运行结果如下: 可以看到两个结果打印的地址是一样的,都 ...
- 找第二大的数SQL-Second Highest Salary
1: 找小于最大的最大的 select max(Salary) from Employee where Salary<(select MAX(Salary) from Employee); 2. ...