Node.js的基础知识点
一,语言 和 环境(平台) 之间的关系
1,浏览器环境 中的 Javascript
浏览器中 Javascript 的组成部分
ECMAScript核心 + DOM + BOM
2,Node环境 中的 Javascript
Node.js 中 Javascript 的组成部分
ECMAScript 核心 + 全局成员 + 核心 API 模块
全局成员:console、setInterval、setTimeout。。。
核心 API 模块:就是 Node 平台 单独提供的一些API,这些API是Node平台所独有的;
注意:Node.js 中 没有 BOM 和 DOM
由于 Node 服务器端运行环境中,没有浏览器 和 HTML 的概念,所以,Node中的javascript 提出了 DOM 和 BOM 这两个对象模型,取而代之的,是 全局成员 和 核心 API 模块;
二,ECMAScript 规范,浏览器中的js,Node中的js之间的关系
ECMAScript 规范(标准):就是一本书,这本书中规定了语言的特性;
浏览器中的js:
浏览器中的 js 组成部分:ECMAScript 核心 + DOM + BOM
Node中的js:
Node中的 js 组成部分: ECMAScript 核心 + 全局成员 + 核心API成员
三,总结
什么是 Node.js(我们自己给它下个定义)
就是一个服务器端的Javascript运行环境,可以让程序员,通过 Javascript 做 后台服务器编程开发
学习 Node.js 可以做什么
像 PHP 一样,使用 Javascript 编写符合规范的后端 API 接口 或 网站
使用 Node.js 开发一些实用的工具 或 包
基于 Socket 技术,开发类似于聊天室之类的即时通讯项目
基于 Electron 环境,开发桌面软件
ect...
四、ECMAScript 6常用语法
4.1 let(变量) 与 const(常量)
之前定义变量,用 var 关键字;有如下主要缺点:
存在变量提升问题,降低 js 代码的可阅读性
没有块级作用域,容易造成变量污染
let 主要特性:
不存在变量提升问题,只有定义之后才能使用此变量
先定义再使用(暂时性死区),不可以重复定义,否则会报错
有
{ }作用域
const 主要特性:
不存在变量提升问题,只有定义之后才能使用此变量
const 定义的常量,*无法被重新赋值,因为常量无法修改,变量可修改*
当定义常量的时候,必须定义且初始化(即需要赋值),否则报语法错误
const 定义的常量,也有 块级作用域
for循环里面定义的const常量,拥有独立的块级作用域,每次循环,都是一个新的作用域
4.2 变量的解构赋值(常用)
定义:所谓的解构赋值,就是把 某个对象中的属性,当作变量,给解放出来,这样,今后就能够当作变量直接使用了;
可以使用
:为解构出来的变量重命名
// 变量的解构赋值
定义 let user={
name:'zs',
age:20,
gender:'男'
}
结构赋值 const { name : name123, age, gender } = user
name : name123相当于,把变量name的值赋值给name123
console.log(name123)
4.3 箭头函数(常用)
语法:
定义普通的
function函数function show() {
console.log('这是普通 function 定义的 show 方法')
}
var add(x,y){
return x+y;
}
add(1,2)把方法定义为箭头函数(最完整的写法)
(形参列表) => { 函数体代码 }
() => {
console.log('这是普通 function 定义的 show 方法')
}
var add=(x,y)=>x+y;
add(1,2)
箭头函数,本质上就是一个匿名函数;
箭头函数的特性: 箭头函数内部的 this, 永远和 箭头函数外部的 this 保持一致;
变体:
变体1:如果箭头函数,左侧的形参列表中,只有一个参数,则,左侧小括号可以省略;
变体2:如果右侧函数体中,只有一行代码,则,右侧的
{ }可以省略;变体3:如果箭头函数左侧 只有一个 形参,而且右侧只有一行代码,则 两边的
()和{}都可以省略
注意: 如果我们省略了 右侧函数体的
{ },那么,默认会把 右侧函数体中代码的执行结果,当作箭头函数的调用结果 return 出去;
4.4 对象中 定义方法 和 定义属性 的便捷方式
var a={
name: 'zs',
age:18,
say(){
console.log('111');
}
}
五,文件操作
1,文件读取
fs.readFile
const fs = require('fs')//引入模块
fs.readFile('./files/1.txt','utf-8',function(err,data){
console.log(err) //err为null,就证明成功了
console.log(data)//读取的数据
})
fs.readFile('./files/1.txt','utf-8',function(err,data){
console.log('读取成功+'data')//读取的数据
})
Node.js的基础知识点的更多相关文章
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- Node.js系列基础学习----安装,实现Hello World, REPL
Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一 ...
- node.js 需要注意知识点
复习node.js 需要注意知识点--(重点) 2.1:参数传递获取造型 客户端脚手架(发) (参数传递) node.js(收) -发ajax this.axios.get(" ...
- Node.js npm基础安装配置&创建第一个VUE项目
使用之前,我们先来明白这几个东西是用来干什么的. node.js: 一种javascript的运行环境,能够使得javascript脱离浏览器运行.Node.js的出现,使得前后端使用同一种语言,统一 ...
- Node.js系列基础学习-----回调函数,异步
Node.js基础学习 Node.js回调函数 Node.js异步编程的直接体现就是回调,异步编程依托回调来实现,但不是异步.回调函数在完成任务后就会被调用,Node有很多的回调函数,其所有的API都 ...
- node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)
第七章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- node.js入门基础
内容: 1.node.js介绍 2.node.js内置常用模块 3.node.js数据交互 一.node.js介绍 (1)node.js特点 与其他语言相比,有以下优点: 对象.语法和JavaScri ...
- 001/Node.js(Mooc)--基础知识
一.Node.js基础知识 node.js用C++语言编写. 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时 ...
- node.js零基础详细教程(3):npm包管理、git github的使用
第三章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...
随机推荐
- luogu 6046 纯粹容器 期望dp
LINK:纯粹容器 一道比较不错的期望题目. 关键找到计算答案的方法. 容易发现对于每个点单独计算答案会好处理一点. 暴力枚举在第k轮结束统计情况 然后最后除以总方案数即可. 考虑在第k轮的时候结束 ...
- windows:驱动模块隐藏
windwos下想要搞点事,权限当然是越大越好:驱动模块天生在0环,和操作提供平级,大家互相是兄弟,所以很多外挂.木马.病毒都会使用驱动达到自己的目的.那么问题来了:PCHUNTER这种工具能查到系统 ...
- Qt 之 Graphics View Framework 简介
Graphics View Framework 交互式 2D 图形的 Graphics View 框架概述.自 Qt4.2 中引入了 Graphics View,以取代其前身 QCanvas.Grap ...
- java开发-flyway
数据库版本管理工具 什么是数据库版本管理? 做过开发的小伙伴们都知道,实现一个需求时,一般情况下都需要设计到数据库表结构的修改.那么我们怎么能保证项目多人开发时,多个数据库环境(测试,生产环境)能够保 ...
- 银弹谷零代码开发V百科|使用技巧:OMG!这些时间日期函数太好用了吧,盘它
银弹谷零代码开发V百科|使用技巧:OMG!这些时间日期函数太好用了吧,盘它 Hello~everybody!小V又来咯!这次小V给大家带来的是零代码开发V平台常用的时间日期函数.小V知道我们平时常常会 ...
- 一文打尽Java继承的相关问题
相关文章: <面向对象再探究>:介绍了面向对象的基本概念 <详解Java的对象创建>:介绍了对象的创建.构造器的使用 在<面向对象再探究>这篇文章中已经笼统的介绍过 ...
- 31-关键字:final
final:最终的 1.可以用来修饰:类.方法.变量 2.具体的: 2.1 final 用来修饰一个类:此类不能被其他类所继承. * 比如:String类.System类.StringBuffer类 ...
- 用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 很多人学 ...
- 微信公众号里面怎么添加xls
微信公众号里面添加xls的教程 我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件. 以下是公众号 ...
- Java基础—对象构造
1.重载 有些类有多个构造器.例如,可以如下构造一个空的StringBuilder对象: StringBuilder message = new StringBuilder(); 或者,可以指定一个初 ...