第二章: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的更多相关文章

  1. 第 2 章 Node.js 中的交互式运行环境 —— REPL

    本章内容包括: 如何使用REPL运行环境以及如何在该运行环境中测试各种JavaScript表达式. 如何定义并启动REPL运行环境. Node.js 框架中为REPL运行环境提供了哪些命令以及这些命令 ...

  2. 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick

    [摘要] 官网博文翻译,nodejs中的定时器 示例代码托管在:http://www.github.com/dashnowords/blogs 原文地址:https://nodejs.org/en/d ...

  3. 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick

    目录 Event Loop 是什么? Event Loop 基本解释 事件循环阶段概览 事件循环细节 timers pending callbacks poll阶段 check close callb ...

  4. Node.js中的URL

    Node.js中的URL 什么是URL URL是Uniform Location Resource的缩写,翻译为"统一资源定位符",也就是描述资源位置的固定表示方法.被URL描述的 ...

  5. 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

    Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...

  6. 第 1 章 Node.js 介绍

    本章内容包括: 什么是 Node.js 框架,为什么要用 Node.js 框架,使用 Node.js 框架能够解决什么问题,在哪些场合下应该考虑使用 Node.js 框架. 如何下载 Node.js ...

  7. 在Node.js中使用RabbitMQ系列二 任务队列

    在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心 ...

  8. [转]在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

    本文转自:https://www.cnblogs.com/kongxianghai/p/5582661.html Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用Ja ...

  9. node.js中process进程的概念和child_process子进程模块的使用

    进程,你可以把它理解成一个正在运行的程序.node.js中每个应用程序都是进程类的实例对象. node.js中有一个 process 全局对象,通过它我们可以获取,运行该程序的用户,环境变量等信息. ...

随机推荐

  1. 洛谷 P1083 借教室

    传送门:Probem 1083 https://www.cnblogs.com/violet-acmer/p/9721160.html 一.暴力简述 首先我们不难看出,这道题--并不是一道多难的题,因 ...

  2. 投票wchat

    https://jingyan.baidu.com/article/0964eca27d3c8d8285f5363f.html 打开微信,进入“通讯录”,如下图中1对应位置. 2 在微信中“添加好友” ...

  3. My thoughts after NOIP 2018(2)

    又一次陷入迷茫了呢. - 大概是因为是因为自招政策要改变了吧? - 大概是因为前路在一点一点变得难走吧? - 大概是因为OI和学习实在太难平衡了吧? 未来的一切都已经不再在我控制的范围之内,不迷茫才怪 ...

  4. pyglet----画一个矩形

    这里列出一种在窗口Window中画图的程序框架.......... #-*- coding:utf-8 -*- from pyglet.gl import * def draw_rect(x, y, ...

  5. elasticsearch-head安装及启动

    head是用于监控Elasticsearch状态的客户端插件,包括数据可视化,增删改查工具,es语句的可视化等等. 5.0之后的安装方式如下: git clone git://github.com/m ...

  6. JavaSE学习总结(十八)—— 多线程

    多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能.具有这种能力的系 ...

  7. JS控制CSS3,添加浏览器兼容前缀

    不同浏览器对于有些css3属性名字定义的时候,会带上特有的前缀,所以在css编写的时候,经常会一个属性写多个不同的前缀进行兼容.比如: div { transform: rotate(30deg); ...

  8. GYM 101173 K.Key Knocking(构造)

    原题链接 参考自 问题描述:一个长度为3*n的01串,每次可以翻转连续的两个字符,要求至多翻转n次使得这个3*n的串至少有2*n个连续的段且相邻两端不一样(就是连续的0算一段,然后连续的1,…) 解法 ...

  9. STM32建立基本项目

    1.下载固件库解压 2.Keil建立项目,项目下建立三个文件夹3.各目录下从固件库中拷贝对应的目录 4.修改main.c文件 5.修改C++ 6.修改Include 7,编译.

  10. Linux之Ubuntu安装Sublime

    0.控制台下开启并使用: 为什么先说这一步呢?确实很尴尬,对不对.但确实,当初就是安装好了都不知道咋个用,就是这么蠢...hahahahahahahha 命令行:subl 注意:不是sub,也不是su ...