ES6,Node.js 练成记...

230 阅读3分钟

js终于结束咯,可以暂时告一段落了,但还是得时不时回顾一下,不然像今天有道要用do while循环做的题,结果都忘了怎么写循环语句了,毕竟js可以说是前端最重要之一,之后继续修炼前端下一步啦,Nl!

一.ES6

 ECMAScript6   JS的第6套标准规范

 ES2015 ..  ES2021 

1.块级作用域

  let声明的变量不允许重复声明,进入到一个暂时性的死区(会提升,只是不允许访问)

  大括号{ }之间的语句块就是块级作用域,例如:if、else、for...块级作用域下let和const声明的都是局部的,不允许外部访问

2.参数增强

  可以给参数设置默认值

 function fn(a,b,c=0){  b=b||0;  //ES6之前的设置方式} 

3.箭头函数

  ()=>{  }

  简化了匿名函数的写法,不等价于匿名函数

sort( (a,b)=>{  return a-b;} )

  如果箭头函数的函数体中只有一行并且是return形式,可以继续简化    sort( (a,b)=>a-b )

4.模板字符串

  简化了字符串的拼接

 模板字符串 ${JS表达式} 

二.Node.js概述

 Node.js是一种JS解释器,运行在服务器端

1.对比JS

  (1)JS运行在浏览器,存在多款浏览器,有代码兼容性问题;Node.js运行在服务器端,只有一种解释器,不存在代码兼容性问题

  (2)都有共同的内置的对象、自定义对象,不同的宿主对象

  (3)JS用于开发浏览器端交互效果,Node.js用于服务器端开发,例如操作数据库、调用其它服务器

2.网址

  www.nodejs.org   官网

  www.nodejs.cn  中文版

3.运行

  (1)脚本模式

    node  拖拽文件     回车

  (2)交互模式

    node    回车  进入交互模式

    两次ctrl+c  或者  一次ctrl+d     退出交互模式

4.特点

  单线程处理逻辑,支持数万个并发连接

三.全局对象

1.global

  检测变量或者函数是否为全局的

在Node.js下,每个js文件不是全局作用域,可以防止全局污染

  浏览器下全局对象名称:window

2.console

  控制台对象,用于输出到控制台

  console.log(1);   //日志

  console.info(2);   //消息

  console.warn(3);   //警告

  console.error(4);   //错误

  console.time()   //开始计时

  console.timeEnd()   //结束计时

  开始计时和结束计时的值要保持一致

3.process

  进程对象,计算机上任何的应用程序都是有对应的进程,会占用一定的资源

  process.arch   查看CPU的架构

  process.platform   查看服务器端操作系统

  process.version   查看服务器端Node.js版本号 

  process.pid   查看当前Node.js的进程编号

  process.kill()    结束指定编号的进程

4.Buffer

  缓冲、缓存

  缓冲区:是内存中一块区域,用于临时存储数据

var buf = Buffer.alloc(5,'abcde')   //创建Buffer,分配大小为5个字节,每个汉字占3个字节buf.toString()  //将Buffer数据转为字符串

四.模块系统

 模块:就是一个独立的功能体,每个文件就是一个模块

 module.exports    是模块暴露的对象,默认是一个空对象

 require()   是一个函数,用于引入其它模块,得到暴露的对象