call,apply,bind异同点
promise
- promise的几种状态,对promise的理解
- 用promise链式调用解决回调地狱问题
- 在第一个请求之后要用return返回promise对象
- 外面继续使用.then()进行成功操作,后面可以继续点catch()
跨域
- jsonp 跨域
- cors跨域资源共享,授权
- 代理服务器
继承
class Person{
constructor(name,sgae){
this.name = name
this.age = age
}
say(){
console.log(this.name,"年龄为",this.age,的人正在说话)
}
}
class Teacher extends Person{
contructor(name,age){
super(name,age)
}
attendClass(){
console.log(this.name,"年龄为",this.age,'的人正在上课')
}
}
let teacher = new Teacher('jack',22)
teacher.say()
teacher.attendClass
function Person(name,age){
this.name = name
this.age = age
say = function(){
console.log(this.name,"年龄为",this.age,的人正在说话)
}
}
Person.prototype.say=function(){
console.log(this.name,"年龄为",this.age,的人正在说话)
}
function Teaaher(name,age){
Person.call(this)
}
原型、原型链
- 原型:对象固有的__proto__属性
- 原型链:多个原型通过隐式__proto__连接起来形成的一种链式结构
- 原型链作用:当我们访问一个对象的属性和方法时,如果这个对象的内部不存在这个方法或属性,那么就会去原型链上查找,直到根null为止。
- 特点:JavaScript对象时通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本。当我们修改原型是,与之相关的对象也会继承这一改变。
原生的Ajax
- ajax 一种异步无刷新技术
- 创建XMLHTTPRequest对象
- 调用open方法传入三个参数(请求方式,url,同步/异步)
- get参数的参数放在url地址后
- post参数的参数放在请求包体中
- 调用send([post的参数])方法传递参数
- 监听onreadystateChange事件,当readystate为4时返回responseText
get&post区别
闭包
- 闭包(函数嵌套函数内部函数就是闭包)
- 闭包形成的条件
- 有一个A函数,在A函数内部返回一个B函数
- 在B函数内部访问了A函数的私有变量
- 在A函数外部,有一个变量引用返回的B函数
- 闭包的特点
- 闭包优点
- 可以把一些变量放在函数里面,不会污染全局
- 能够访问函数定义时所在的词法作用域
- 模拟块级作用域
- 创建模块
- 缺点
- 会导致函数的变量一直保存在内存中,过多的闭包可能会导致内存泄漏