一,语言 和 环境(平台) 之间的关系

1,浏览器环境 中的 Javascript

浏览器中 Javascript 的组成部分

  • ECMAScript核心 + DOM + BOM

2,Node环境 中的 Javascript
  1. Node.js 中 Javascript 的组成部分

    • ECMAScript 核心 + 全局成员 + 核心 API 模块

    • 全局成员:console、setInterval、setTimeout。。。

    • 核心 API 模块:就是 Node 平台 单独提供的一些API,这些API是Node平台所独有的;

  2. 注意:Node.js 中 没有 BOM 和 DOM

    1. 由于 Node 服务器端运行环境中,没有浏览器 和 HTML 的概念,所以,Node中的javascript 提出了 DOM 和 BOM 这两个对象模型,取而代之的,是 全局成员 和 核心 API 模块;

二,ECMAScript 规范,浏览器中的js,Node中的js之间的关系

  1. ECMAScript 规范(标准):就是一本书,这本书中规定了语言的特性;

  2. 浏览器中的js:

    • 浏览器中的 js 组成部分:ECMAScript 核心 + DOM + BOM

  3. Node中的js:

    • Node中的 js 组成部分: ECMAScript 核心 + 全局成员 + 核心API成员

三,总结

  1. 什么是 Node.js(我们自己给它下个定义)

    就是一个服务器端的Javascript运行环境,可以让程序员,通过 Javascript 做 后台服务器编程开发

  2. 学习 Node.js 可以做什么

    • 像 PHP 一样,使用 Javascript 编写符合规范的后端 API 接口 或 网站

    • 使用 Node.js 开发一些实用的工具 或 包

    • 基于 Socket 技术,开发类似于聊天室之类的即时通讯项目

    • 基于 Electron 环境,开发桌面软件

    • ect...

四、ECMAScript 6常用语法

4.1 let(变量) 与 const(常量)
  1. 之前定义变量,用 var 关键字;有如下主要缺点:

    • 存在变量提升问题,降低 js 代码的可阅读性

    • 没有块级作用域,容易造成变量污染

  2. let 主要特性:

    • 不存在变量提升问题,只有定义之后才能使用此变量

    • 先定义再使用(暂时性死区),不可以重复定义,否则会报错

    • 有 { } 作用域

  3. 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 箭头函数(常用)
  1. 语法:

    • 定义普通的 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)
  2. 箭头函数,本质上就是一个匿名函数;

  3. 箭头函数的特性: 箭头函数内部的 this, 永远和 箭头函数外部的 this 保持一致;

  4. 变体:

    • 变体1:如果箭头函数,左侧的形参列表中,只有一个参数,则,左侧小括号可以省略;

    • 变体2:如果右侧函数体中,只有一行代码,则,右侧的 { } 可以省略;

    • 变体3:如果箭头函数左侧 只有一个 形参,而且右侧只有一行代码,则 两边的 () 和 {} 都可以省略

  5. 注意: 如果我们省略了 右侧函数体的 { },那么,默认会把 右侧函数体中代码的执行结果,当作箭头函数的调用结果 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的基础知识点的更多相关文章

  1. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  2. Node.js系列基础学习----安装,实现Hello World, REPL

    Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一 ...

  3. node.js 需要注意知识点

    复习node.js 需要注意知识点--(重点) 2.1:参数传递获取造型 客户端脚手架(发)    (参数传递)    node.js(收) -发ajax  this.axios.get(" ...

  4. Node.js npm基础安装配置&创建第一个VUE项目

    使用之前,我们先来明白这几个东西是用来干什么的. node.js: 一种javascript的运行环境,能够使得javascript脱离浏览器运行.Node.js的出现,使得前后端使用同一种语言,统一 ...

  5. Node.js系列基础学习-----回调函数,异步

    Node.js基础学习 Node.js回调函数 Node.js异步编程的直接体现就是回调,异步编程依托回调来实现,但不是异步.回调函数在完成任务后就会被调用,Node有很多的回调函数,其所有的API都 ...

  6. node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)

    第七章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  7. node.js入门基础

    内容: 1.node.js介绍 2.node.js内置常用模块 3.node.js数据交互 一.node.js介绍 (1)node.js特点 与其他语言相比,有以下优点: 对象.语法和JavaScri ...

  8. 001/Node.js(Mooc)--基础知识

    一.Node.js基础知识 node.js用C++语言编写. 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时 ...

  9. node.js零基础详细教程(3):npm包管理、git github的使用

    第三章  建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...

随机推荐

  1. 线程_FIFO队列实现生产者消费者

    import threading # 导入线程库 import time from queue import Queue # 队列 class Producer(threading.Thread): ...

  2. CF R638 div2 F Phoenix and Memory 贪心 线段树 构造 Hall定理

    LINK:Phoenix and Memory 这场比赛标题好评 都是以凤凰这个单词开头的 有凤来仪吧. 其实和Hall定理关系不大. 不过这个定理有的时候会由于 先简述一下. 对于一张二分图 左边集 ...

  3. MyBatis-Plus使用(2)-CRUD接口

    参考文档:https://mybatis.plus/guide/crud-interface.html MyBatis-Plus自带的CRUD方法分为Mapper层和Service层,大多数功能是重叠 ...

  4. 「MoreThanJava」Day 4:面向对象基础

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...

  5. slots属性(省内存,限制属性的定义)

    class Foo: __slots__=['name','age'] #{'name':None,'age':None} # __slots__='name' #{'name':None,'age' ...

  6. cryptopp使用Qt mingw编译,以及海思平台交叉编译

    编译工程生成,使用qmake生成qt工程文件(海思平台时,要用海思平台的qmake),将 TEMPLATE = app 修改为: TEMPLATE = lib 添加如下: win32:LIBS += ...

  7. Python精选库大全,建议收藏留用!

    Python为啥这么火,这么多人学,就是因为简单好学,功能强大,整个社区非常活跃,资料很多.而且这语言涉及了方方面面,比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开 ...

  8. Python高性能HTTP客户端库requests的使用

    Python中有许多HTTP客户端.使用最广泛且最容易的是requests. 持续连接 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很 ...

  9. 13、Visitor 访问者模式 访问数据结构并处理数据 行为型设计模式

    1.模式的定义与特点 访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元 ...

  10. OpenCV常用图像拼接方法(一) :直接拼接

    OpenCV常用图像拼接方法将分为四部分与大家分享,这里是第一种方法,欢迎关注后续. OpenCV常用图像拼接方法(一) :直接拼接,俗称硬拼,就是简单的将两张图片合并成一张大图. 方法比较简单,这里 ...