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.编写后台业务逻辑 ...
随机推荐
- 区块链钱包开发 - USDT - 二、创建交易错误以及解决方法
这里总结了开发中一些常见报错和解决方案 1. 提示:createRawtx_change "Amount is not a number" 解决:参数中 tx 的 amout 需要 ...
- docker 常用命令备忘录
基础命令 docker version docker info docker --help 镜像命令 查看 docker images 其中: REPOSITORY:表示镜像的仓库源 TAG: ...
- linux之shell基本认知操作和简单shell练习
shell编程: 1.Shell的作用 命令解释器,“翻译官”.介于操作系统内核与用户之间,负责解释命令行. shell功能非常强大,除负责解释名另外,还可以将多个命令组合起来,完成复杂的任务,这就是 ...
- explain关键字使用解释
原文: 58沈剑 架构师之路 https://mp.weixin.qq.com/s/oWNrLHwqM-0ObuYbuGj98A <数据库允许空值,往往是悲剧的开始>一文通过explai ...
- C++ 中可调用的且有函数功能的东东
第一个:函数 其实函数在声明的时候都有个名字: 这个名字可以看作是是指针,将其直接赋值给函数指针 也可以看作是可取指的对其& 再赋值给函数指针 第二个:函数指针 通过其被赋值的方式 ...
- Echarts图表随浏览器大小,模块大小,位置实时更新
1.图表位置随浏览器大小改变 2.图表位置随模块的改变而改变 只需要在事件函数中添加:
- Android 给服务器发送网络请求
今天听得有点蒙,因为服务器的问题,这边建立服务器的话,学长用的是Idea建立的Spring之类的方法去搞服务器. 然后就是用Android去给这个服务器发送请求,大致效果还是懂的,就是像网站发送请求, ...
- 博客主题推荐——复杂&简单
首先感谢原作者cjunn提供的主题autm,以下配置都基于此主题设定.很多小伙伴喜欢现在的样式,分享如下.只需简单几步即可. 如果你想使用本博客主题样式,并希望能得到远程推送更新,只需查看 快速部署. ...
- 【Linux】zookeeper-3.5.6启动失败8080端口被占用
通过查看zookeeper的官方文档 1. 可以禁用adminServer 2.可以删除jetty服务
- java web应用启动报错:Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already in use.
Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already in use. The serve ...