黑马程序员技术交流社区

标题: node基础 [打印本页]

作者: 结束亦是开始    时间: 2019-6-27 13:10
标题: node基础
2. 了解基本概念



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

1. 语言,是编写代码的语法规范;程序员遵循特定的语法规范,编写出来的代码,只是单纯的文本字符串而已,并不具备可执行的特点;
2. 环境(平台),提供了执行代码的能力,如果程序员编写的代码想要成功执行,必须要依赖于特定的执行环境;
   - 例如:Javascript代码可以被浏览器中的JS解析引擎执行;
   - 所以,浏览器,就是一个 Javascript 的执行环境;因为 Javascript 代码可以在浏览器中被执行;



2.2 前端 和 后端

1. 前端主要工作
   1. 页面结构
   2. 美化页面样式
   3. 书写页面的业务逻辑
   4. 使用Ajax调用后台接口
2. 后端主要工作
   1. 操作数据库
   2. 对外暴露操作数据库的API接口
3. 前后端协作开发



2.3 浏览器环境 中的 Javascript

1. 诞生:上世纪 90年代左右,网景 liveScript、表单验证
2. 一战:
   - 主角:微软和网景
   - 结果:微软IE胜出
   - 胜利的果实:ECMAScript 语言标准的诞生
3. 二战
   - 主角:谷歌、火狐、IE
   - 结果:谷歌胜出
   - 胜利的果实:谷歌的V8引擎是最快的JS解析引擎
4. 回顾:浏览器中 Javascript 的组成部分
   - ECMAScript核心 + DOM + BOM



2.4 Node环境 中的 Javascript

1. 什么是 Node.js:就是 Javascript 的服务器端运行环境,可以让程序员使用 Javascript 来实现服务器端的编程;
2. Node.js 中 Javascript 的组成部分
   - ECMAScript 核心 + 全局成员 + 核心 API 模块
   - 全局成员:console、setInterval、setTimeout。。。
   - 核心 API 模块:就是 Node 平台 单独提供的一些API,这些API是Node平台所独有的;
3. 注意:Node.js 中 没有 BOM 和 DOM
   1. 由于 Node 服务器端运行环境中,没有浏览器 和 HTML 的概念,所以,Node中的javascript 提出了 DOM 和 BOM 这两个对象模型,取而代之的,是 全局成员 和  核心 API 模块;




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

1. ECMAScript 规范(标准):就是一本书,这本书中规定了语言的特性;
2. 浏览器中的js:
   - 浏览器中的 js 组成部分:ECMAScript 核心 + DOM + BOM
3. Node中的js:
   - Node中的 js 组成部分: ECMAScript 核心 + 全局成员 + 核心API成员
5. ECMAScript 6常用语法

5.1 let(变量) 与 const(常量)

1. 之前定义变量,用 var 关键字;有如下主要缺点:
   - 存在变量提升问题,降低 js 代码的可阅读性
   - 没有块级作用域,容易造成变量污染
2. let 主要特性:
   - 不存在变量提升问题,只有定义之后才能使用此变量
   - 有 { } 作用域
3. const 主要特性:
   - 不存在变量提升问题,只有定义之后才能使用此变量
   - const 定义的常量,无法被重新赋值
   - 当定义常量的时候,必须定义且初始化,否则报语法错误
   - const 定义的常量,也有 块级作用域





5.2 变量的解构赋值(常用)

定义:所谓的解构赋值,就是把 某个对象中的属性,当作变量,给解放出来,这样,今后就能够当作变量直接使用了;

- 可以使用 :为解构出来的变量重命名

      // 变量的解构赋值
      const { name : name123, age, gender } = person
      console.log(name123)



5.3 箭头函数(常用)

1. 语法:
   - 定义普通的 function 函数
         function show() {
             console.log('这是普通 function 定义的 show 方法')
         }
         
   - 把方法定义为箭头函数(最完整的写法)
         (形参列表) => { 函数体代码 }
2. 箭头函数,本质上就是一个匿名函数;
3. 箭头函数的特性: 箭头函数内部的 this, 永远和 箭头函数外部的 this 保持一致;
4. 变体:
   - 变体1:如果箭头函数,左侧的形参列表中,只有一个参数,则,左侧小括号可以省略;
   - 变体2:如果右侧函数体中,只有一行代码,则,右侧的 { } 可以省略;
   - 变体3:如果箭头函数左侧 只有一个 形参,而且右侧只有一行代码,则 两边的 () 和 {} 都可以省略
5. 注意: 如果我们省略了 右侧函数体的 { },那么,默认会把 右侧函数体中代码的执行结果,当作箭头函数的调用结果 return 出去;





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2