小白的Node.js学习笔记大全---不定期更新

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

Node.js是什么

  • Node. js 是一个基于 Chrome v8 引擎的服务器端 JavaScript 运行环境
  • Node. js 是一个事件驱动、非阻塞式I/O 的模型,轻量而又高效
  • Node. js 的包管理器 npm 是全球最大的开源库生态系统

特性

单一线程

Node.js 沿用了 JavaScript 单一线程的执行特性。即在 Node.js 中,JavaScript 的执行线程与其他线程之间同样也是无法共享状态的。

单一线程的最大好处是不用像多线程编程那样处理很容易产生 bug 的同步问题,它从根本上杜绝了死锁问题,也避免了线程上下文交换所带来的性能上的开销。当然了,单一线程的执行方式也有它自身的弱点,譬如,它无法充分发挥多核处理器的性能、一个错误就会导致整个程序崩溃,以及当某一任务执行大量计算时会因长期占用处理器而影响其他异步 I/O 的执行。

事件驱动

在 Web 开发领域,JavaScript 如今在浏览器端正承担了越来越重要的角色,其事件驱动的编程模型也逐渐深入人心。

当然了,这种编程模型虽然具有轻量级、松耦合等优势,但在多个异步任务的场景下,由于程序中的各个事件是彼此独立的,它们之间的协作就成为了一个需要我们费心解决的问题。

异步编程

在 Node.js 中,大部分 I/O 操作都是以异步调用的方式来进行的。Node.js 的开发者们在其底层构建了许多异步 I/O 的 API,包括文件读取、网络请求等。

这样一来,我们就可以很自然地在语言层面上实现并行的 I/O 操作,使得程序中的每个调用都无须等待之前的 I/O 调用结束,从而提高程序的执行效率。

例如,如果我们想要读取两个相互不依赖的文件,如果采用的是异步 I/O,其耗费的时间只取决于读取较慢的那个文件,而如果采用同步 I/O 的话,其耗时就是两个文件的读取时间之和了,异步操作模型带来的优势是显而易见的。

当然了,由于异步编程也会导致代码的编写顺序与其具体执行顺序的不一致,对于很多习惯同步思路编程的人来说,阅读和维护这样的代码会是一个不小的挑战。

常见概念

let、const、var的区别

(1)块级作用域: 块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题:

内层变量可能覆盖外层变量
用来计数的循环变量泄露为全局变量
(2)变量提升: var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否在会报错。

(3)给全局添加属性: 浏览器的全局对象是window,Node的全局对象是global。var声明的变量为全局变量,并且会将该变量添加为全局对象的属性,但是let和const不会。

(4)重复声明: var声明变量时,可以重复声明变量,后声明的同名变量会覆盖之前声明的遍历。const和let不允许重复声明变量。

(5)暂时性死区: 在使用let、const命令声明变量之前,该变量都是不可用的。这在语法上,称为暂时性死区。使用var声明的变量不存在暂时性死区。

(6)初始值设置: 在变量声明时,var 和 let 可以不用设置初始值。而const声明变量必须设置初始值。

(7)指针指向: let和const都是ES6新增的用于创建变量的语法。 let创建的变量是可以更改指针指向(可以重新赋值)。但const声明的变量是不允许改变指针的指向。
(8)const对象的属性可以修改吗:

const保证的并不是变量的值不能改动,而是变量指向的那个内存地址不能改动。对于基本类型的数据(数值、字符串、布尔值),其值就保存在变量指向的那个内存地址,因此等同于常量。
但对于引用类型的数据(主要是对象和数组)来说,变量指向数据的内存地址,保存的只是一个指针,const只能保证这个指针是固定不变的,至于它指向的数据结构是不是可变的,就完全不能控制了。

Node.js版本踩坑笔记

参考:https://blog.csdn.net/qq_59208151/article/details/126816880

node.js对应的node-sass,sass-loader版本

小白的Node.js学习笔记大全---不定期更新,前后端,node.js,学习,笔记
常用的node.js与node-sass,sass-loader对应版本

node--@14对应的版本
"node-sass": "^4.14.1",
"sass-loader": "^9.0.3",
 
node--@16对应的版本
"node-sass": "^6.0.1",
"sass-loader": "^10.0.1",
 
更换版本号(也可以直接修改项目中的package.json里面的版本,npm install重新安装依赖就行了)
npm uninstall node-sass
npm install node-sass@4.14.1
npm install node-sass@6.0.1

安装包大全

https://nodejs.org/dist/v14.16.1/

vue项目中怎么查看node版本号

在package.lock.json中搜关键字:
“@types/node”: {

rror: error:0308010C:digital envelope routines::unsupported

https://blog.csdn.net/m0_65933139/article/details/130690790

Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime

npm uninstall --save node-sass
npm cache clean -f
npm install --save node-sass
npm install node-sass@5.0.0

安装

https://blog.csdn.net/github_39655029/article/details/105397485

用npm安装cnpm
继续在终端输入:npm install -g cnpm --registry=https://registry.npm.taobao.org
安装过程需要一点时间,等完成之后可以输入:cnpm -v
出现以下内容即安装成功

cnpm@6.1.1 (/usr/local/lib/node_modules/cnpm/lib/parse_argv.js)
npm@6.13.7 (/usr/local/lib/node_modules/cnpm/node_modules/npm/lib/npm.js)
node@13.7.0 (/usr/local/Cellar/node/13.7.0/bin/node)
npminstall@3.27.0 (/usr/local/lib/node_modules/cnpm/node_modules/npminstall/lib/index.js)
prefix=/usr/local 
darwin x64 18.7.0 
registry=https://r.npm.taobao.org

海量源码、教程资源扫描下方二维码获取

小白的Node.js学习笔记大全---不定期更新,前后端,node.js,学习,笔记文章来源地址https://www.toymoban.com/news/detail-652175.html

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

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

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

相关文章

  • 微软笔记软件onenote使用方法和技巧(不定期新增)

    不知道有多少人喜欢用电子笔记,反正我除了公式有时候会在纸上写,其他的笔记都用电子版。毕竟用纸笔记录的笔记,没法随时随地查看与修改,也没法任意新增,有时候要跟别人讨论,带一个pad肯定比带几个笔记本要舒服。 云同步、多设备、搜索、OCR 这些功能,让电子

    2024年02月07日
    浏览(51)
  • 微信小程序的兼容处理汇总(不定期更新)

    目录 1.名词统一 2.兼容问题的几种情况 3.问题分类 3.1.Api相关 3.1.1.wx.makePhoneCall()拨打电话页面样式不一致 3.1.2.wx.enableAlertBeforeUnload()监听右滑返回上一页询问对话框不弹出 3.2.JS处理相关 3.2.1.ios做new Date()时,时间格式不兼容  3.2.2.if(!!data) 双重感叹号取非不生效 3.3.官方组件库

    2024年02月09日
    浏览(37)
  • Java 8 新特性 Stream 的使用场景(不定期更新)

    方便在写代码的过程中直接使用,好记性不如好文章,直接 CV 改了直接用。提高 办(摸)公(鱼)效(时)率(间), 不然就直接问 GPT 也不是说不行。 anyMatch :只要有一个就会返回 true 。 allMatch :所有元素都满足就返回 true。 后续将不定期更新 Stream 的骚操作使用,如果

    2024年02月05日
    浏览(40)
  • 不定期更新:我对 ChatGPT 进行多方位了解后的报告,超级全面,建议想了解的朋友看看

    优质介绍视频: GPT4+前端【AI编程新纪元】 【渐构】万字科普GPT4为何会颠覆现有工作流;为何你要关注微软Copilot、文心一言等大模型 此文章不定期更新(一周应该会更新一次) 最近一次更新:2023.5.17 23:00 (主要更新了新闻部分,本周 openai 向 plus 用户开放插件及 Browsing 模

    2024年02月01日
    浏览(61)
  • STM32控制步进电机:工作原理及库函数(标准库) / HAL库控制程序(不定期更新)

    要控制步进电机,首先要明白步进电机的基本工作原理。 举个例子。如下图所示,通过给1绕组通电使其保持平衡,定义一个初始位置,再通过给2绕组通电,使其产生向里的磁场,使中间的转子产生偏转,最终达到平衡,即旋转了90°。 目前市面上最常用的步进电机为混合式

    2024年02月12日
    浏览(45)
  • 【H5移动端】常用的移动端方案合集-键盘呼起、全面屏适配、图片大小显示、300ms点击延迟、首屏优化(不定期补充~)

    这篇文章总结了我在工作中做H5遇到的一些问题,包括我是怎么解决的。可能不是当下的最优解,但是能保证解决问题。 单位适配问题可看:【H5移动端】前端H5移动端的单位适配方案集,包括给你用例子讲明白什么是1像素的问题(不定期补充~) 本文章未来也会不定期的补充

    2024年02月14日
    浏览(41)
  • python3文件路径操作常用方法带示例详解(os.path模块,os.listdir,os.walk,os.scandir方法等)(不定期更新整理中)

    首先说明路径一般都是字符串的形式,与普通字符串的主要区别在于,普通字符串中的反斜杠(“”)是表示转义字符的,如换行符(“n”),跳格符(“t”),而在路径中,正斜杠(“/”)和反斜杠(“”)都是用来表示目录分隔符的。 在python中一般用os.path模块来处理路径字符串,

    2024年01月23日
    浏览(48)
  • ChatGPT中文版Prompt提示工程超详细指南《提示工程高级技巧与技术》Github最新破万星项目Meta AI前工程师解密百万年薪提示工程师GPT-4模型优化利器(二)不定期更新

    随着时代的进步和技术的不断发展,提示工程已然脱胎换骨,从简单的提示编写和测试逐渐演变成了一门更加复杂、具有挑战性的高科技领域。对于资深提示工程师来说,唯有不断学习和掌握新技术,才能在这个充满机遇和挑战的领域中取得成功。 在掌握了更高级的提示工程

    2024年02月12日
    浏览(58)
  • Node.js学习笔记-05

    测试包含单元测试、性能测试、安全测试和功能测试等几个方面,本章将从Node实践的角度来介绍单元测试和性能测试。 10.1.1 单元测试的意义 开发者自测。对于开发者而言,不仅要编写单元测试,还应当编写可测试代码。 编写可测试代码原则: 单一职责 接口抽象 层次分离

    2024年02月12日
    浏览(43)
  • Node.js学习笔记-02

    1、函数式编程 高阶函数 函数可以作为参数或者返回值。 偏函数用法 偏函数用法是指创建一个调用另外一个部分——参数或变量已经预置的函数——的函数的用法。 举个例子:在JavaScrip中进行类型判断时,我们通常会进行类似上述代码的方法定义。如下代码存在的问题是需

    2024年02月14日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包