ES6及数据库

1.ES6介绍

q.什么是ES6

ES6是ECMA Script 6.0的简称, 就是语言最新的标准, 发布与15年左右
目标让js语言成为能支持去编写大型复杂的应用语言, 成为企业级开发语言
2.变量

q.变量有什么新特性?

可以使用let去定义变量
可以使用const去定义常量
解构赋值

q.let作用?

var定义变量在函数外是全局作用域 [OK]

var定义变量在函数里面,是函数内作用,
	从定时开始到函数结束都能用
	有效区域: 定义开始,到函数结束

let能定义块级作用于的变量
	有效区域: 定义开始,到定义块结束

q.const如何使用?

const PI = 3.14;

特性: 改了之后会报错

q.解构赋值如何使用?

赋值的一种形式
以前赋值   a=10
解构赋值,最简单理解等号左边多个值,等号右边也可以有多个值
注意: 对应的结构

q.对类和对象有什么改进

3.类和对象的改进
提供了关键字 class 定义类
提供了关键字 extends 继承一个类
	super()执行父类的初始化函数
提供了对象字面量, 定义一个函数

q.class的用法

格式:

class 类名{
	
	//自动调用初始化函数
	constructor(name){
		
		//添加的属性
		this.name = name
	}
	
	say(){
		
	}
	
}

q.extends继承的用法

格式:
class 子类类名 extends 父类{
	
	constructor(name,score){
		
		super(name)
		this.score = score
	}
	
	show(){
		
	}
}
4.函数相关

q.es6在函数这块有哪些改进或者新特性?

默认参数
箭头函数
rest函数(可变参数的函数)

q.默认参数是什么怎么用

function hello(x=10,y=20)

q.箭头函数

格式
	(参数1,参数2,....) => {
		
	}
	
注意1: 如果参数只有一个,可以省略()
	如果没有参数, 必须加上 ()
	
注意2: {}中只有一个renturn语句,省略{}和return

注意3: 箭头函数好处1: 简化回调函数
		好处2中this指向定义的时作用域

q.rest参数
作用: 定义变参的函数

语法: function fun(a,b, ...list)
5.数组相关

q.数组新的特性有哪些?

扩展运算符 ...
for-of遍历	直接获取数组的值
Array.from()  对象转数组(有要求)
Array.of
Array.prototype.copyWithIn()
Array.prototype.find()

q. …用法

q. for-of

格式:  for(var v of arr){}

q.Array.from()如何使用?

对象转数组
有要求,
	1.对象有length
	2.有对应的序号

q.Array.of多个值转一个数组

例子: var arr = Array.of(1,2,3,4,5)

q.Array.prototype.copyWithIn()

数组内数据复制

q.Array.prototype.find() 是查找数据

//根据你传入匿名函数中条件, 返回第一个查找的值
6.字符串相关

q.新特性有哪些?

编码
    for-of

字符串查找(常用)
	includes 是否包含
	startWith 前缀
	endWith 后缀
	
重复 repeat()

补位
	padStart()
	padEnd()
	
模板字符串

q. 编码

var c = "吉"
var c = "\uXXXX\uXXXX"
var c = "\u{xxx}"

q.for-of

for(var c of str){}

q.字符串查找(常用)

includes 是否包含
startWith 前缀
endWith 后缀

q.重复

repeat()

q.补位

padStart()
padEnd()
7.新的数据类型

q.es提供新的数据类型有哪些?

Map映射, 存储多个键值对数据, 类似对象
Set集合, 存储多个不重复的数据

q.Map的用法

创建Map:   new Map()
存储值		map.set(key,value)
获取值		map.get(key)
遍历		for(var [k,v] of map)
删除值		map.delete(k)
 清空		map.clear()

q.Set用法

创建Set:		new Set()
添加值:		set.add()
删除值:		set.delete()
清空:		set.clear()
遍历:		for(var v in set.keys())
8.proxy 代理

q.proxy是什么

一种监控对象的属性改变的一种机制
9.深拷贝
var arr = [1,2,3,4,5]
var [ ...arr2 ] = arr
arr[2] = 5
console.log(arr)
console.log(arr2)
10.什么是Npm?

npm 是 Node.js官方提供的包管理工具,他已经成了 Node.js 包的标准发布平台,用于 Node.js 包的发布、传播、依赖控制。npm 提供了命令行工具,使你可以方便地下载、安装、升级、删除包,也可以让你作为开发者发布并维护包。

11.Express

Express是一个路由和中间件 Web 框架,其自身只具有最低程度的功能:Express 应用程序基本上是一系列中间件函数调用。

理解为:
Express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件

12.exports和model.exports关系

Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。

13.模板引擎的设置
app.set("view engine","html")
app.engine("html",ejs.__express)
14.webpack其优势主要可以归类为如下几个:
  1. webpack 是以 commonJS 的形式来书写脚本滴,但对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移。

  2. 能被模块化的不仅仅是 JS 了。

  3. 开发便捷,能替代部分 grunt/gulp 的工作,比如打包、压缩混淆、图片转base64等。

  4. 扩展性强,插件机制完善

15.什么是模块?

将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起
块的内部数据与实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信。

16.为什么使用模块及模块化? 模块及模块化

以module.exports和require来说

module.exports.xxx = xxx
module.exports= {}
exports.xxx = xxx

var router = require("./1.js")

router.xxx 
router.fn()

达到代码重用性,避免全局变量的污染

模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。
模块化是一种处理复杂系统分解为更好的可管理模块的方式。

17.模块化规范总结

CommonJS规范主要用于服务端编程,加载模块是同步的,这并不适合在浏览器环境, ​ 因为同步意味着阻塞加载,浏览器资源是异步加载的,因此有了AMD CMD解决方案。 ​ AMD规范在浏览器环境中异步加载模块,而且可以并行加载多个模块。 ​ 不过,AMD规范开发成本高,代码的阅读和书写比较困难,模块定义方式的语义不顺畅。 ​ CMD规范与AMD规范很相似,都用于浏览器编程,依赖就近,延迟执行, ​ 可以很容易在Node.js中运行。不过,依赖SPM 打包,模块的加载逻辑偏重 ​ ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单, ​ 完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。

18.MongoDB特性:

 面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;
 格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;
 强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力;
 完整的索引支持,支持查询计划;
 支持复制和自动故障转移;
 支持二进制数据及大型对象(文件)的高效存储;
 使用分片集群提升系统扩展性;
 使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;

19.数据库主要分成两种:
  • 关系型数据库 Sql
    • MySQL、Oracle、DB2、SQL Server ……
    • 关系数据库中全都是表
  • 非关系型数据库 NoSql 就是以json的键值对存储数据,你可以把它理解为就是json文件
    • MongoDB、Redis ……
    • 键值对数据库
    • 文档数据库MongoDB
20.mongoose与mongoDB关系

mongoose是针对mongoDB操作的一个对象模型库,封装了mongoDB对文档的、增删改查等方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值