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.编写后台业务逻辑 ...
随机推荐
- PHP jdtounix() 函数
------------恢复内容开始------------ 实例 把格利高里历法的日期转换为儒略日计数,然后把儒略日计数转换为 Unix 时间戳: <?php$jd=gregoriantojd ...
- AT5200 [AGC038C] LCMs 莫比乌斯反演
LINK:LCMs 随便找了道题练习了一下莫比乌斯反演 式子有两个地方化简错误 导致查了1h的错. 讲一下大致思路 容易发现直接做事\(n^2logn\)的. 观察得到数字集合大小为1e6. 可以设\ ...
- react-router分析 - 一、history
react-router基于history库,它是一个管理js应用session会话历史的js库.它将不同环境(浏览器,node等)的变量统一成了一个简易的API来管理历史堆栈.导航.确认跳转.以及s ...
- ORCHESTRATOR介绍及使用
ORCHESTRATOR 一简介 MySQL高可用性和复制拓扑管理工具,支持复制拓扑结构的调整,自动故障转移和手动主从切换等.后端数据库用MySQL或SQLite存储元数据,并提供Web界面展示MyS ...
- win系统下git代码批量克隆,批量更新
@REM 根据实际情况设置GIT路径及本地仓库地址 set path=%path%;"D:\Program Files\Git\cmd" set project_path=F:\g ...
- Angular 10材质的模态弹出示例和教程
在本教程中,我们将通过示例使用Angular 10材质构建模式弹出窗口. 在这里,我们将研究创建Angular 10项目,安装和设置Angular 10材质,以及创建自定义材质模块文件. 在本教程中, ...
- nginx多个server的配置,同一端口
nginx多个server的配置,同一端口 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/e ...
- Spring Boot 数据缓存 - EhCache
EhCache 集成 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider. 在 Spring Boot 中集成 E ...
- SourceTreet提交时显示remote: Incorrect username or password ( access token )(4种解决办法)
引言 我因为第一次安装Sources Tree的时候进行破解时(跳过安装时的登录),因为操作失误造成了好多bug,导致Sources Tree不论提交,拉取,获取,都会报remote: Incorre ...
- LeetCode 647. Palindromic Substrings的三种解法
转载地址 https://www.cnblogs.com/AlvinZH/p/8527668.html#_label5 题目详情 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同 ...