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')//读取的数据
})
最新文章
- VS2013发布网站,vs2013发布
- 物理主机win 7系统迁移至VMware ESXI服务器
- 由Memcached使用不当而引发性能问题的两个经验总结
- memcached在windows7上的安装问题
- Out of resources when opening file 错误解决
- IPv6 tutorial 2 New features: Routing
- putty命令行提交本地修改文件到git
- (解决方法)Android studio 运行时报错Do you want to uninstall the existing application?的解决方法
- Git reset到某一次commit
- 安卓TV开发(十) 智能电视开发之在线视频直播
- 英语口语练习系列-C14-常用片语
- uva-757-贪心
- tjoi2018D2T2(luogu4590) 游园会 (状压dp)
- git拉取远程分支
- 前台框架vue.js中怎样嵌入 Echarts 组件?
- 包装类、object、单例模式、final、抽象类
- instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例 , 返回true或者false
- 十二:video 视频
- Sqlite数据库字符串处理函数replace
- 有用的Python代码片段