Node.js API学习笔记(一)
此文章已经发表于本人博客。
Terminal(终端)
说起这个使用过linux系统的兄台一般都会知道的,本人理解:类似Putty这些ssh工具通过 软件来实现远程控制主机,对于我们使用者来说,它会显示信息并能接收信息并处理,这个东东就是终端。至于什么伪终端应该就是用软件实现使一套输入输出设备 可以支持多个软终端。
这里说下node.js中有关的终端模块3个,分别是:STDIO、TTY、REPL。
一、STDIO
如果我没理解错控制台应该是属于noddjs标准的输入输出,一般把信息输出到stdout或者是stderr。
二、TTY
这个tty好像就跟伪终端解析一样,现在还不明白,不过不是很主要听讲说是准备放弃。
三、REPL
这是一个交互式解释器,至于什么是交互性这不解释了。这个REPL为node运行的状态以及信息提供一种交互方式。比如我们在windows下命令行输入:
node
>consolg('hello world!');
这样就会打印出hello world字符。
四、利用控制台
上面使用console.log();语句打印信息,那么我们可以使用这个查看很多信息,比如变量的值、堆栈的信息以及断言。
console.log([data],[...]):第一个参数是字符串,可以带上像C语言一样的占位符,后面可选,本人网上查看了一些资料,占位符支持%s(字符串),%d(数字),%j(json)。例子如下:
//不带占位符以及参数,输出:hello world
console.log('hello world');
//带上占位符,不过不带参数。输出:hello
console.log('hello %s');
//带上占位符以及参数。输出:hello world
console.log('hello %s', 'world');
//输出:age is 30
console.log('age is %d',30);
//输出:json data:{'age':30}
console.log('json data:%j',{age:30});
//输出:{age:30}
console.log({age:30});
//时间标记,标识lable开始
console.time('lable');
//时间标记,标识lable结束。输出lable : 100ms(可以计算中间的处理时间)
console.timeEnd('lable');
//打印当前堆栈lable的信息。输出Trace : lable ----------------------
console.trace('lable');
//断言语法:console.assert(expression,[message])
//输出AssertionError : 异常咯
console.assert(false,'异常咯');
五、Buffer
这个Buffer的出现基本上说就是为了解决js本身对于二进制不友好的局面。大家都知道nodejs的存在依赖网络,对不同资源的请求以及响应甚至是文件都是用二进制出里的,使用inodejs专门提供这个机制来处理字节流。
目前本人收集了Buffer支持的编码有:'ascii':这个速度快;'utf8':支持Unicode字符;'base64':base64字符串编码; 'utf16le'、'ucs2'、 'hex'。
创建Buffer实例,目前知道的是有4种;
//第一种指定大小,这个大小是固定的不会因为write的写入而改变
var buf = new Buffer(8);
buf.write('luoliang');
console.log(buf);
//第二种:数组初始化。输出:<Buffer 01 03 fe ff 00>。可以看出是求256的余数,而且不是四舍五入完全是取整
var buf1 = new Buffer([1.2,3.7,254,255,256]);
console.log(buf1);
//第三种:字符串初始化并带编码,默认utf8
var buf2 = new Buffer('中国人');
//输出:中国人
console.log(buf2.toString());
//下面将会输出乱码
buf2 = new Buffer('中国人','ascii');
console.log(buf2.toString());
//下面将会输出: 9 e4b8ade59bbde4baba
var buf3 = new Buffer('中国人');
console.log(buf3.length);
console.log(buf3.toString('hex'));
//上面的不同编码对象的length是不同的,这个需要特别注意以下可以自己实验下 //还有一个创建Buffer对象的slice,不过这个我基本没用过,表示截取字符串创建buffer
var buf4 = new Buffer('中国人');
var buf5 = buf4.slice();
//输出:中国人
console.log(buf5.toString());
//输出:国
buf5 = buf4.slice(3,6);
这次的笔记先到这里,接下来继续!
Node.js API学习笔记(一)的更多相关文章
- Node.js API 学习笔记
常用 API 学习笔记 url 函数 url.parse: 解析 url 地址 url.resolve: 向 url 地址添加或替换字段 url.format: 生成 url 地址 querystri ...
- Node.js API学习笔记(二)
本文发表于本人博客. 上一节笔记说到创建Buffer实例,这节继续讲Buffer.本节讲解下Buffer的一些静态方法.写入以及读取方法. Buffer.isEncoding(编码)判断nodejs是 ...
- 《深入浅出Node.js》学习笔记(一)
看了朴灵前辈的node.js系列文章,很开阔视野,虽然能力有限还是有很多不懂,但是还是希望能写下笔记,初步对node.js有点了解. 一.概念 Node.js不是JS应用.而是JS运行平台 Node. ...
- node.js day01学习笔记:认识node.js
Node.js(JavaScript,everywhere) 1.Node.js 介绍 1.1. 为什么要学习Node.js 企业需求 + 具有服务端开发经验更好 + front-end + back ...
- Node.js入门学习笔记(一)
先来个最常见的"Hello World!". 打开你最喜欢的编辑器(我用的是Sublime Text),创建一个helloWorld.js的文件.我们要做的就是向stdout输出& ...
- node.js 基础学习笔记3 -http
http模块,其中封装了一个高效的HTTP服务器和一个建议的HTTP客户端 http.server是一个基于事件的HTTP服务器 http.request则是一个HTTP客户端工具,用户向服务器发送请 ...
- node.js入门学习笔记整理
(1)node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node与javaScript的区别在于,javaScript的顶层对象是window,而no ...
- Node.js入门学习笔记(三)
基于事件驱动的回调 这个问题不好回答,不过这是Node.js原生的工作方式.它是事件驱动的,这也是它为什么这么快的原因.你可以花一点时间阅读一下Felix Geisendörfer的大作 Unders ...
- node.js 基础学习笔记2
Module和Package是Node.js最重要的支柱. Node.j 提供require函数来调用其他模块,而且模块都是基于文件.模块和包区别是透明的,因此常常不作区分. 1.模块和文件一一对应. ...
随机推荐
- css3学习笔记(一)
1. IE下的渐变: filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='# ...
- jfinal_BLOG v1.0
http://git.oschina.net/fleam/jfinal_AmazeUI
- ParseChat应用源代码ios版
ParseChat是一个全然原生的iPhone应用程序.用于创建实时的.基于文本的Parse聊天室.功能:支持多台设备之间的实时聊天,可动态加入新的聊天室,支持基本配置,可发送和接收音效以及随意大小的 ...
- 重写ListView解决ListView内部ViewPaper滑动事件冲突问题
非常easy 重写ListView 其它类似问题解决ScrollView嵌套ViewPager出现的滑动冲突问题 http://blog.csdn.net/zhangyiacm/article/det ...
- 使用python封装get+post请求
思路: 将平时用的多的get和post请求封装,提高代码重用率. 其中Session类可以通过实例化,保存cookie信息,可以在程序结束前多次通过保存的cookie信息保持登录状态的访问. 那么为什 ...
- webpack 从入门到工程实践
from:https://www.jianshu.com/p/9349c30a6b3e?utm_campaign=maleskine&utm_content=note&utm_medi ...
- iOS-本地沙盒路径
沙盒几个路径: 沙盒里的文件夹包括Documents.Library.tmp.这三个文件夹的作用请点击这里.接下来我们来讲解如何获取Documents.Library.tmp的路径. 获取沙盒根目录 ...
- 服务器证书日期无效 SSL_DATE_INVALID
一大早上,企业微信中提示不能使用:服务器证书日期无效 错误码:SSL_DATE_INVALID 网上资料也比较少,咨询了一下企业微信客服,建议访问网址:https://www.ssllabs.com ...
- Leetcode-Convert Sorted Array to BST
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. So ...
- 移动端:判断是否微信端、判断手机操作系统(ios或android)
http://caibaojian.com/browser-ios-or-android.htmlfunction is_weixin() { var ua = window.navigator.us ...