2020922王杉
学习内容:
ES6:
-
解构
-
定义:将一个大的对象或数组中集中存储的成员中的个别成员,取出来单独使用
-
为什么使用;什么时候使用:将来从服务器返回的对象或数组可能很复杂;凡是获得结构结构嵌套复杂的对象,都要先解构成多个小的成员,再分别单独使用
-
使用结构:
- 数组解构:提取出索引数组中指定位置的元素,保存在单独的变量中独立使用
-
使用:var [变量1, 变量2,...]=数组
下标:0 1
-
对象解构:
- 仅提取出复杂对象中的个别成员属性或方法,保存在变量中,单独使用
- 使用:var{ 属性名1 : 变量1 , 属性名2 : 变量2 ,...}=对象;
-
原理:同时声明多个变量,去对象中查找相同属性名的属性值,赋值给对应位置的变量,每个变量中都获得了自己对应属性名的属性值。将来每个变量都可以单独使用
-
参数解构:
-
将所有的参数都定义在一个对象结构中,再传参,调用函数传参时,也是将所有实参值都放在一个对象中传入
-
使用参数解构:①在定义函数时,将所有形参放在一个对象结构中
function 函数名({
属性名1 : 形参1,
属性名2 : 形参2,
...
}){...}②在调用函数时,所有实参也必须放在相同结构的对象中,整体传入
函数名({
属性名1 : 实参1,
属性名2 : 实参2,
...
}) -
参数解构原理:参数解构,其实就是对象解构在函数传参时的应用而已
-
参数解构优点:①无论有多少参数不确定,都不会报语法错误,如果解构时,实参列表中缺少参数,则函数中对应的形参变量获得undefined ②实参列表和形参列表只要名称对应即可,没有必然顺序,参数解构其实就是对象解构在函数使用时的应用而已
-
-
-
class
-
定义:集中存储一个类型的构造函数和原型对象的程序结构,即简化版的面向对象(封装、继承、集中存储一个类型的构造函数和原型对象的程序结构,即简化版的面向对象(封装、继承、多态)多态)
-
class的封装:
①用class{}包裹之前的构造函数和原型对象方法
②构造函数名提升为整个class的类型名,不仅仅只属于构造函数,今后所有的构造函数必须更名为constructor,构造函数中的内容和旧的js写法一致
③从此class中的原型对象方法,无需再添加类型名.prototype 前缀 以及“ =function ” 也可以省略。凡是放在class中的方法,默认都是放在原型对象里的
④class内的构造函数和多个原型对象方法之间不用加 , 或 ; 分隔
⑤class的使用和旧js中构造函数和原型对象方法的使用完全一样。存储结构完全一样的。——class其实就是"新瓶装旧酒"
-
共有属性问题:在class中强烈不推荐共有属性
注意:
①直接放在class中的属性,绝不是共有属性,而会成为将来每个子对象的自有属性 ②写死在构造函数里的属性,更不是共有属性。所有构造函数里的属性,将来一律都会成为每个孩子的自有属性
③其实可以通过特殊的方式添加共有属性,但是强烈不推荐
-
访问器属性:保护this,访问器只提供保护功能,不实际存属性值,保护的能力没有分辨能力;在class中保护将来的子对象的写法同普通构造函数时的保护方式一样。只不过访问器属性可以简写
-
class间的继承:
使用:两种类型间有相同的属性结构和方法定义时使用
使用class继承:①创建一个父类型,父类型构造函数中,保存多个子类型相同部分的属性结构定义,父类型class中,保存多个子类型相同的部分的方法定义
②创建子类型class,让子类型继承父类型,子类型class用"extends 父类型",取代 Object.setPrototypeOf(xxx, xxx),让子类型继承父类型。在子类型构造函数中调用父类型构造函数,两个构造函数共同创造出将来的子对象——将来的子对象中同时包含父类型和子类型中构造函数的属性定义
注意:如何在子类型构造函数中调用父类型构造函数?
①extends附赠了一个关键词super,super指向父类型的构造函数。调用super,就等效于调用父类型的构造函数了 注意:super()必须写在自己扩展的属性之前
-
数据库:数据库是按照一定的形式来组织、存储数据,目的是为了操作数据的增删改查
-
数据库历史:网状数据库、层次型数据库、关系型数据库、非关系型数据库
-
数据库存储:内存/特定文件/第三方服务器/数据库服务器
-
关系型数据库逻辑结构:Server(数据库服务器)/Database(数据库)/Table(数据表)/Row(行)/Column(列)
-
常见的关系型数据库:①SQLit②MySQL③SQL Server④Oracle
-
计算机存储字符:
-
存储英文字符:ASCII、Latin-1
-
存储中文字符:GB2312、GBK、BIG5、Unicode
-
中文乱码:中文乱码产生的原因:mysql默认使用Latin-1编码
解决:①SQL脚本文件另存为的编码为utf8②客户端连接服务器端使用的编码(set names utf8)③服务器端创建数据库使用的编码(charset=utf8)
-
MySQL数据库使用:
-
服务器:mysql目录下的bin文件mysql.exe(负责存储和维护数据,启动文件确保3306端口不被占用)
-
客户端:mysql目录下的bin文件mysql.exe(负责向数据库发起增删改查)
-
客户端连接服务器端:mysql.exe -h127.0.0.1 -P3306 -uroot -p (简写:mysql -uroot -proot)
-h:host 主机(ip地址/域名)
-P:port 端口
-u:user 用户名
-p:password 密码
-
常用命令:show databases;查看数据库名 use 数据库名;进入数据库 show tables;查看数据表 desc 表名;查看表结构 quit;退出
-
学习心得:
今天学习了ES6的解构和class两个点都有些多,不过是在之前的知识上进行扩充,还是能理解,就是有些有关面向对象的知识有点绕,不是很好去记忆,然后就是进行学习了MySQL,比较起来数据库还是要稍微好理解可以一边操作一边记忆。
评论留言