Node.js学习笔记-02

这篇具有很好参考价值的文章主要介绍了Node.js学习笔记-02。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

三、node的异步I/O

四、异步编程

1、函数式编程

高阶函数

函数可以作为参数或者返回值。

偏函数用法

偏函数用法是指创建一个调用另外一个部分——参数或变量已经预置的函数——的函数的用法。

举个例子:在JavaScrip中进行类型判断时,我们通常会进行类似上述代码的方法定义。如下代码存在的问题是需要重复去定义一些相似的函数,如果有 更多的isXXX(),就会出现更多的冗余代码。

var toString = Object.prototype.toString;
var isString = function (obj){
	return toString.call(obj) =='[object String]';
}
var isFunction = function (obj){
	return toString.call(obj) == '[object Function]';
}

改造以后

var isType = function (type) {
    return function (obj) {
        return toString.call(obj) == '[object ' + type + ']';
    }
}
var isString = isType('String')
var isFunction = isType('Function')
console.log(isString)
console.log(isFunction)

2、异步编程的优势与难点

Node利用JavaScript及其内部异步库,将异步直接提升到业务层面,这是一种创新。

优势

Node带来的最大特性莫过于基于事件驱动的非阻塞I/O模型,这是它的灵魂所在。非阻塞I/0可以使CPU与I/O并不相互依赖等待,让资源得到更好的利用。对于网络应用而言,并行带来的想象空间更大,延展而开的是分布式和云。并行使得各个单点之间能够更有效地组织起来,这也是Node在云计算厂商中广受青睐的原因,图4-1为异步IO调用的示意图。

难点
  1. 异常处理
  2. 函数嵌套过深
  3. 阻塞代码
  4. 多线程编程
  5. 异步转同步

3、异步编程的解决方案

1. 事件发布/订阅模式
2.Promise / Deferred
3.流程控制库

4、异步并发控制

五、内存控制

V8的内存限制:

在一般的 后端开发语言中,在基本的内存使用上没有什么限制。然而在Node中通过JS使用内存时就会发现只能使用部分内存(64位系统下约为1.4GB,32位系统下 约为0.7GB)。在这样的限制下,将会导致Node无法直接操作大内存 对象。

高效使用内存

这一节中定义的闭包概念是:
实现外部作用域访问内部作用域中变量的方法叫做闭包(closure)。

小结:
在正常的JavaScript执行中,无法立即回收的内存有闭包和全局变量引用这两种情况。由于V8的内存限制,要十分小心此类变量是否无限制地增加,因为它会导致老生代中的对象增多。

六、理解 Buffer

Buffer是一个像Array的对象,但它主要用于操作字节。下面我们从模块结构对象结构的层面上来认识它。

1、Buffer结构

模块结构:
Buffer 是一个典型的JavaScript与C++结合的模块,它将性能相关部分用C++实现,将非性能相关的部分用JavaScript实现。

Buffer所占用的内存不是通过V8分配的,属于堆外内存。由于V8垃圾回收性能的影响,将常用的操作对象用更高效和专有的内存分配回收策略来管理是个不错的思路。

由于 Buffer 太过常见,Node 在进程启动时就已经加载了它,并将其放在全局对象(global)上。所以在使用Buffer时,无需通过 require() 即可直接使用。文章来源地址https://www.toymoban.com/news/detail-620265.html

2、Buffer的转换

3、Buffer的拼接

4、Buffer与性能

到了这里,关于Node.js学习笔记-02的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web学习笔记(四十五)Node.js

    目录 1. Node.js 1.1 什么是Node.js 1.2 为什么要学node.js 1.3  node.js的使用场景 1.4 Node.js 环境的安装 1.5 如何查看自己安装的node.js的版本 1.6 常用终端命令 2. fs 文件系统模块 2.1引入fs核心模块 2.2 读取指定文件的内容 2.3  向文件写入指定内容 2.4 创建文件夹  2.5 判断文件夹是否存

    2024年04月16日
    浏览(34)
  • 尚硅谷最新Node.js 学习笔记(一)

    目录 一、Nodejs入门 1.1、为什么要学习Nodejs? 1.2、Nodejs是什么? 1.3、Nodejs的作用 1.4、Nodejs安装 1.5、Nodejs初体验 1.6、编码注意事项 二、Buffer(缓冲器) 2.1、概念 2.2、特点 2.3、使用 创建Buffer Buffer与字符串的转化 Buffer的读写 三、fs模块 3.1、文件写入 异步写入 同步写入 app

    2024年02月19日
    浏览(42)
  • 小白的Node.js学习笔记大全---不定期更新

    Node. js 是一个基于 Chrome v8 引擎的服务器端 JavaScript 运行环境 Node. js 是一个事件驱动、非阻塞式I/O 的模型,轻量而又高效 Node. js 的包管理器 npm 是全球最大的开源库生态系统 单一线程 Node.js 沿用了 JavaScript 单一线程的执行特性。即在 Node.js 中,JavaScript 的执行线程与其他线程

    2024年02月12日
    浏览(44)
  • 【node.js】02-path模块

    目录 1. path.join()  2. path.basename() 3. path.extname() 1. path.join()  使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下:  例子:   2. path.basename() 使用 path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,语法

    2024年02月15日
    浏览(78)
  • Node.js 学习笔记 fs、path、http模块;模块化;包;npm

    教学视频 BV1MN411y7pw , P83-97的笔记 Node.js是一个跨平台JavaScript运行环境,使开发者可以搭建服务器端的JavaScript应用程序。 作用:使用 Node.js 编写服务器端程序 ✓ 编写数据接口,提供网页资源浏览功能等等 ✓ 前端工程化:为后续学习 Vue 和 React 等框架做铺垫 1.前端工程化 前

    2024年04月08日
    浏览(88)
  • Vue-Element-Admin项目学习笔记(7)用Node.js写一个简单后端接口

    前情回顾: vue-element-admin项目学习笔记(1)安装、配置、启动项目 vue-element-admin项目学习笔记(2)main.js 文件分析 vue-element-admin项目学习笔记(3)路由分析一:静态路由 vue-element-admin项目学习笔记(4)路由分析二:动态路由及permission.js vue-element-admin项目学习笔记(5)路由分析

    2024年02月09日
    浏览(55)
  • Node.js笔记

    node下载地址:Node.js (nodejs.org) 查看node版本: 运行js文件: 按住shift+鼠标右键:打开Power Shell,PS是新的cmd npm类似maven包管理工具 npm设置阿里镜像: 文件模块 文件的读取: 文件的写入: __dirname:当前文件所在目录 __filename:__dirname本文件全名 路径拼接 path里面可以用../回退

    2024年02月10日
    浏览(36)
  • node.js笔记(3)

    在使用fs模块操作文件是,如果使用./或../开头的相对路径时,很容易出现路径动态拼接错误。原因是在代码运行的时候,会执行node命令所处的目录,动态拼接出被操作的完整路径。 出现路径拼接是因为是相对路径,采用绝对路径则不会。 采用绝对路径,移植性特别差,不利

    2024年01月19日
    浏览(41)
  • node.js笔记(2)

    fs模块是node.js官方提供的,用来操作文件的模块,提供了一系列的方法和属性,用来满足用户对文件的操作需求。 在使用之前,需要导入,使用require方法来导入 读取指定文件的内容 fs.readFile(path,[options],callback) 其中,path代表文件路径, options是可选参数,表示以什么编码格

    2024年01月17日
    浏览(47)
  • (Node笔记)Node.js安装及环境配置——史诗级详细版

    目录 1、下载Node.js 2、安装Node.js 3、验证Node.js安装 4、Node.js环境配置         (1)更改npm安装全局模块的目录和缓存路径         (2)配置环境变量 5、测试Node.js安装结果 6、配置淘宝镜像 7、总结         官方下载地址: https://nodejs.org/zh-cn/         双击“ node-v

    2024年02月05日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包