《Node学习指南》一2.2 REPL的优势:更好地理解表层之下的JavaScript

2.2 REPL的优势:更好地理解表层之下的JavaScript

Node学习指南
下例是一个REPL的典型示范:

> 3 > 2 > 1;
false

这段代码很好地解释了REPL的工作原理。一眼看上去会认为期望的输出值为true,因为3大于2,2大于1。但是在JavaScript中,表达式是从左到右计算的,每个表达式的返回值作为下一个表达式的一部分进行计算。

以下REPL中的语句可以帮助你更好地理解前端代码:

> 3 > 2 > 1;
false
> 3 > 2;
true
> true > 1;
false

现在这个结果看起来就合理多了。整个计算过程如下:首先计算表达式3>2,返回true;之后用true值与数字1进行比较。JavaScript提供了自动类型转换,true和1被认为是相等的值。因此,true不大于1,返回值为false。

REPL有助于我们发现JavaScript中这些有趣的地方。希望代码经过REPL的测试之后,应用程序中不会出现无法预测的结果(比如期望得到true却得到了false)。

时间: 2024-08-02 12:26:32

《Node学习指南》一2.2 REPL的优势:更好地理解表层之下的JavaScript的相关文章

《Node学习指南》一导读

前 言 Node学习指南 非同寻常的JavaScript 目前正是学习Node的好时机. Node相关的技术依然年轻充满生机,经常出现有趣的变化和改动.同时,这项技术也达到了一定的成熟度,可以确保你在学习Node上花费的时间是值得的:即使在Windows上安装也非常简单:从成百上千的可用模块中涌现出了最佳组合模块:对于产品环境来说这种结构足够健壮. 当使用Node时需要记得两个要点.第一,Node是基于JavaScript的,与你之前用于客户端开发的JavaScript多少有些类似.当然,你也可

《Node学习指南》一第2章 Node与REPL 2.1 REPL:先睹为快和未定义的表达式

第2章 Node与REPL Node学习指南尝试使用Node编写自定义的模块或者应用程序时,并不需要每次运行写好的JavaScript文件来测试代码功能.Node有一个交互式组件称为REPL(read-eval-print-loop,读取求值列印循环),这将是本章的主题. REPL(发音为"repple")支持简化的Emacs风格行编辑和一小部分基本命令.在REPL中输入任何内容都与用Node运行JavaScript编写的文件具有相同的处理方式.事实上,可以使用REPL编写整个应用程序

《Node学习指南》一2.3 多行以及更复杂的JavaScript

2.3 多行以及更复杂的JavaScript Node学习指南 你可以像写文件一样在REPL中输入JavaScript,包括导入module的require语句.以下代码显示了如何使用Query String(qs)module: $ node > qs = require('querystring'); { unescapeBuffer: [Function], unescape: [Function], escape: [Function], encode: [Function], stri

《Node学习指南》一2.4 不可预计的意外—记得经常保存

2.4 不可预计的意外-记得经常保存 Node学习指南Node的REPL是一个便捷的交互式工具,可以使开发任务变得简单点.REPL不仅可以在引入文件之前对JavaScript进行测试,并且可以边编写边测试直到完成时保存代码内容. REPL另一个有用的特性是可以创建自定义的REPL,减少无用的undefined输出,预加载模块以及修改提示符或者eval方法等. 我强烈推荐在REPL中使用rlwrap,可以跨session浏览历史命令.这一特性可以节省大量的时间.话说回来,我们之中谁不喜欢更多更强大

《Node学习指南》一1.3 异步函数及Node事件循环

1.3 异步函数及Node事件循环 Node学习指南 Node的基本设计原则是将应用程序放置在单线程(或单进程)中执行,同时异步处理所有事件. 考虑下典型的Web服务器(如Apache)是如何工作的.Apache可以采用两种不同的方式处理传入的请求:一种方式是将传入的每个请求分配到独立的进程中直至请求被处理完毕:另一种方式则是为每一个请求生成单独的处理线程. 第一种方式(也称为prefork multiprocessing model,或prefork MPM)可以根据Apache配置文件中指定

《Node学习指南》一1.2 开始Node开发

1.2 开始Node开发 Node学习指南现在你已经安装了Node,是时候开始编写第一个Node应用程序了. 1.2.1 Hello, World in Node 为了测试新的开发环境.语言或者工具,第一个写出来的程序往往是"Hello,World".我们同样也将使用Node创建一个"Hello,World"程序,它仅仅简单的向访问它的用户输出问候语. 示例1-1包含了使用Node创建Hello,World程序需要的全部文本代码. 示例1-1 Node版Hello,

《写给PHP开发者的Node.js学习指南》一第 2 章 简单的Node.js框架2.1 HTTP服务器

第 2 章 简单的Node.js框架 写给PHP开发者的Node.js学习指南 在之前的章节,我介绍了一个用于PHP到Node.js转换的开发环境,以及如何使用它进行转换.在本章,我们将开始使用这个开发环境并进行实际的转换. 2.1 HTTP服务器 写给PHP开发者的Node.js学习指南 在PHP中,一个PHP文件代表一个HTML页面.一个Web服务器,比如Apache,当请求一个PHP页面时,Web服务器会运行PHP.但是在Node.js里,Node.js的main文件代表了整个服务器.No

《写给PHP开发者的Node.js学习指南》一导读

前 言 写给PHP开发者的Node.js学习指南 为什么要写这本书呢? 就互联网语言来说,PHP产生于1995年,是一门很古老的语言:而Node.js产生于2009年,是一门非常新的语言.结合PHP和Node.js你可以鸟瞰整个Web服务器从起源到现在的历史过程以及其中的改变.但是更重要的是,这些内容告诉了我们哪些没有改变--没有改变的那些,是整个行业公认的最佳实践--以及一点点未来可能的样子. PHP与Node.js最大的不同在于,PHP是一门阻塞型语言,依赖于API并且在执行结束前并不返回任

《写给PHP开发者的Node.js学习指南》一2.2 预定义的PHP变量

2.2 预定义的PHP变量 写给PHP开发者的Node.js学习指南 当一个支持PHP的Web服务器执行一个PHP页面时,它并不是仅提供一个未处理的对某个页面的HTTP request,然后执行这个页面.如果它这样做的话,那么每一个PHP页面都需要大量额外的代码来解析原始的HTTP request并且把这些值用更方便的方式存储起来.相反,PHP引擎解码原始的HTTP请求,并将数据填充到一堆众所周知的PHP全局变量中.这些全局变量被正确填充才能保证PHP页面正常工作. 由于我们采用的基本方法是将P