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 全局对象,通过它我们可以获取,运行该程序的用户,环境变量等信息. ...
随机推荐
- mysql 删除以某字符串开头的表
Select 'SET FOREIGN_KEY_CHECKS = 0;'unionSelect CONCAT( 'drop table ', table_name, ';' )FROM informa ...
- Deploy to container Plugin插件发布配置
参数详解: 第一项(WAR/EAR files):是war包的相对路径(相对于工作区路径,即在工作区中war包的相对路径.)如我的maven执行完成之后会在工作区的target目录下生成项目.wa ...
- python---一个简单的socket
server端: 1 创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) #family参数代表地址家族,可为 ...
- Scala进阶之路-Scala中的泛型介绍
Scala进阶之路-Scala中的泛型介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 通俗的讲,比如需要定义一个函数,函数的参数可以接受任意类型.我们不可能一一列举所有的参数类 ...
- IP基本原理
IP基本原理 一.IP基本原理 IP是网络层协议,也是当今应用最广泛的网络协议之一 IP协议规定了数据的封装方式,网络节点的标识方法,用于网络上数据的端到端的传递. 1.IP及其相关协议 2.IP的主 ...
- iptables 代理转发配置
增加命令 [root@pre /]# iptables -t nat -A PREROUTING -s 39.15.15.15/32 -d 221.11.8.200/32 -p tcp -m tcp ...
- 使用swagger来编写在线api文档
swagger是一个非常简单,强大的框架.快速上手,只需要引入jar包 , 使用注解就可以生成一个漂亮的在线api文档 pom.xml <dependency> <groupId&g ...
- Spring Schedule整合配置
Spring Schedule是spring提供的任务调度框架.很简单,也很强大,简单是因为只需要在spring配置文件中写一行代码配置一下.就ok,强大是因为调度表达式.这里会给出一个网站,在线生成 ...
- Calendar add 方法 和set方法
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar. ...
- Java EE之Hibernate的HibernateSessionFactory
昨天,一下午都被一个bug缠身,最后逐层排查,发现是MyEclipse 2014自动生成的HibernateSessionFactory有问题.后观察网友提供的自动生成的HibernateSessio ...