马上就要找工作了,已经迫在眉睫了,不然要被男朋友耻笑了,一定要优秀一点,才配得上人间! 今天无论如何也要把这个项目做出来,云笔记,云笔记,跟着老师的步伐一步步的前进,加油,加油加油,你一定可以的! 小阿妍,我的天,我从来没有这么迫切的想要成功,因为我已经找到了对象,为了以后的幸福生活! 下面就开始吧: var let 和 const的区别与类似:
var可以声明前置
先 a = 3,在var a;
let不可声明前置
先 a = 3,在let a,则报错!
let不可以重复声明
let a = 3; let a = 4;//wrong
存在块级作用域
let里面有块级作用域;
暂时性死区(TDZ):在let声明变量之前都是该变量的死区,在死区内变量不可使用。
我们在全局作用域中或还是在局部作用域中,使用var关键字声明的变量,都会被提升到该作用域的最顶部,这就是我们常说的变量提升。
let是块级作用域,所有外面的语句块访问不到,let是没有变量提升的,
const声明指的是常量,常量就是一旦定义完就不能修改的值。还有一点需要注意的是,常量定义必须初始化值,如果不初始化值就会报错。
const与let也没什么大不同,都是块级作用域,const常量也只会在当前代码块内有效,也不能在当前作用域中重复定义相同的变量,也不存在变量提升。
const声明对象
const声明的常量不可改变, 虽然const变量不能修改指针,但是可以修改值,比如我们定义一个对象,我们就可以修改对象里的属性值,但是不可以重写整个对象。
const person = {
name: "蛙人",
age: 23
}
person.age = 18 // 没问题
person = {} // 报错 不能修改对象指针
解构赋值
默认值
- let[a,b = 2]=[3]
- 如果没有一一对应,后面没有给值的话就是undefined;后面就使用默认值;a=3,b=2;
- let [a,b=2]=[3,4],b=2是默认值,但是右面有,就用后面的a=3,b=4;
undefined和null的区别
let[a=2,b=3] = [undefined,null] a//2 b//null
let [a=1,b=a] = [2] a//2 b//2
对象的默认值
let {x,y=5}={x:1} x//1 y//5
函数解构
function add ([x=1,y=2]){ return x+y } add() //3 add([2])//4 add([3,4])//7
多行字符串
let str = hi, this is jirengu.com; you can study frontened here.
字符串模板
let website = 'jirengucom'
let who = 'You'
let str = Hi This is ${website}. ${who} can study from here
数组扩展
var a = [1,2]
console.log(...a)//1,2
var b = [...a,3]
b//[1,2,3]
var c = b.contact([4,5])
var d = [..b,4,5]
模块化
class和继承
需求分析
UI图纸
1.创建账号
2.登录
3.笔记本列表
4.笔记详情
5.回收站
交互分析
- 假设用户未登录,当访问网站时,默认跳转到【登录页面】
- 用户此时可输入账号密码进行登录。也可点击注册账号跳转到【注册页面】
- 在注册页面用户可输入用户名密码进行注册
- 登录成功后默认跳转到【笔记本列表页面】, 用户可新建笔记本、删除笔记本、修改笔记本标题
- 用户点击某条笔记本,会跳转到 【笔记页面】,【笔记】页面展示当前笔记本下的笔记列表以及其中一个笔记的详情。用户可在笔记本列表顶部切换笔记本,切换笔记本后会自动展示该笔记本下的笔记列表,并自动打开列表下的第一条笔记
- 当用户点击回收站时,会跳转到【回收站】页面,回收站页面里有所有临时删除的笔记。用户可彻底删除笔记,也可恢复笔记到原笔记本
- 当用户点击注销时,回到登录页面