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.编写后台业务逻辑 ...
随机推荐
- 不想得手指关节炎?帮你提炼IDEA常用代码补全操作
一.常用的代码补全操作 1..for和.fori(for 循环遍历) 输入args.for回车(args是一个数组或集合类),则会生成for循环遍历: 输入args.fori回车,则会生成带有索引的f ...
- The JOIN operation -- SQLZOO
The JOIN operation 注意:where语句中对表示条件的需要用单引号, 下面的译文使用的是有道翻译如有不正确,请直接投诉有道 01.Modify it to show the matc ...
- PHP krsort() 函数
------------恢复内容开始------------ 实例 对关联数组按照键名进行降序排序: <?php$age=array("Peter"=>"35 ...
- PDOStatement::getColumnMeta
PDOStatement::getColumnMeta — 返回结果集中一列的元数据(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)高佣联盟 www.cgewang. ...
- 题解 Luogu P1514 【引水入城】
有一种神奇的算法叫做floodfill 就是一个n*m的矩阵,a[i][j]为当前高度,我们可以任选一个点倒水,开始bfs,如果要搜的点没有被搜到过,并且高度小于当前的点,我们就把这个点加入队列中 而 ...
- QueryRunner使用总结
使用JDBC技术是一件繁琐的事情,为了使数据库更加高效,有一种简化jdbc技术的操作--DBUtils.DbUtils(org.apache.commons.dbutils.DbUtils)是Apac ...
- python文件的执行
python文件的后缀名没有限制,但是为了后来导入模版的规范性,python代码通常以".py"作为后缀: python文件运行 一般情况都是解释器+文件名,如:python ** ...
- python4.1定义函数
def add(a,b,c,d): e=a+b+c-d return e result=add(21,32,43,56)print("加和结果是:",result) def zzj ...
- Python中匿名函数与内置高阶函数详解
大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...
- 蜻蜓点水说说Redis的ziplist的奥秘
本篇博客参考: Redis 深度历险:核心原理与应用实践 Redis内部数据结构详解(4)--ziplist Redis的压缩列表ZipList 上篇博客中,我给大家蜻蜓点水般的介绍了Redis中SD ...