json

  1. 如果key和value一样的话可以简写
1
2
3
4
let a=5
let b=3
<!-- let obj={a:a,b:b} -->
let obj={a,b}
  1. json内的方法可以简写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- let obj={
a:1,
b:2,
show:function(){
alert(this.a,this.b)
}
} -->

let obj={
a:1,
b:2,
show(){
alert(this.a,this.b)
}
}

obj.show()

字符串

  1. 字符串模板
    植入变量,任意折行
1
2
3
4
5
6
7
8
9
10
11
//植入变量
let obj={name:'小明',age:18}
<!-- alert('我叫:'+obj.name+', 我今年'+obj.age+'岁') -->

alert(`我叫${obj.name},我今年${obj.age}岁`)

//折行
alert(`我叫
${obj.name},
我今年
${obj.age}岁`)
  1. startsWith和endsWith
1
2
3
4
5
6
7
8
9
10
11
12
13
//startsWith
if(phoneNum.startsWith('135')){
alert('移动')
}else{
alert('联通')
}

//endsWith
if(fileName.endsWith('.txt')){
alert('文本文件')
}else{
alert('图片')
}

面向对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//之前的写法
function Person(name,age){
this.name=name
this.age=age
}

Person.prototype.showName=function(){
alert("我叫"+this.name)
}
Person.prototype.showAge=function(){
alert("我"+this.age+"岁")
}

var p=new Person('小明',20)
p.showName()
p.showAge()

//继承
function Worker(name,age,job){
Person.call(this,name,age)
this.job=job
}
worker.prototype=new Person()
worker.prototype.constructor=Worker
worker.prototype.showJob=function(){
alert("我是做"+this.job)
}
var w=new Worker('小明',20,'打杂')
w.showName()
w.showAge()
w.showJob()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//现在的写法
class Person{
constructor(name,age){
this.name=name
this.age=age
}
showName(){
alert("我叫"+this.name)
}
showAge(){
alert("我"+this.age+"岁")
}
}

let p=new Person('小明',18)
p.showName()
p.showAge()

//继承
class Worker extends Person{
constructor(name,age,job){
//super 超类,父类
super(name,age)
this.job=job
}
showJob(){
alert('我是做'+this.job)
}
}
let w=new Worker('小明',18,'打杂')
w.showName()
w.showAge()
w.showJob()

cookie、session

cookie
存储在浏览器,请求服务器的时候,会顺便发给服务器,不超过4k
不安全的

大白话理解:
小卖铺搞了个活动,你买十瓶水我送你一瓶,但人太多,你买三瓶我买五瓶的记不清楚,我就给每人发个卡,你买一瓶我就在上面签个名字,然后这个卡就存你那,你下回来买的时候把卡带着,等什么时候签满了,就送你一瓶水,然后再给你一张新的卡。

这样的问题在于:
1.造假怎么办,卡片存在对方手里,就好像cookie存在浏览器里,是可以改的,所以是不安全的,任何存在浏览器端的都是不安全的。

session
存储在服务器,不是独立的,基于cookie
安全问题:session 劫持
处理方法之一:缩短session有效时间

大白话理解:
还是小卖铺,卡存在我这了。但你来买水我怎么知道卡是你的?所以就会有一个证明,你每次来买东西都要出示一下你的身份证,我根据你的身份证来看看你的卡上现在写了几个了,这样就安全了一些。

存在cookie里的session ID,就相当于身份证,也就是token