1.this关键字的使用方法
1.方法中的this,指向调用方法的对象。
2.全局环境下指向全局对象。
3.全局函数中的this,指向全局对象。
4.内部函数中的this,指向全局对象。
5.事件中的this,指向出发事件的dom对象。
6.构造函数中的this,指向new创建的对象。
7.箭头函数中的this,指向定义函数上下文的this。
3.split() 和 join() 的区别
split()是将字符串切割成数组的形式,join()是将数组转换成字符串。
4.JavaScript有哪些数据类型。
基本类型:String、Number、Boolean、Null、Undefined、Symbol。
引用数据类型:Object、Array、Function。
5.数据检测类型的方法有哪些?
typeof、instanceof、constructor、Object.prototype.toString.call()。
6.判断数据的方法有哪些?
instanceof、 Array.isArray()、 Object.prototype.toString.call()
7.null和undefined的区别?
Undefined:是表示变量声明过但并未赋过值
Null:代表空值,空引用。
8.例举3种强制类型转换和2种隐式类型转换?
强制 parseInt, parseFloat, number
隐式 (== === + -)
9.call,apply,bind
他们的作用都是修改this指向
他们的第一个参数都是被指向的对象
call() 方法接受的是参数列表,而 apply() 方法接受的是一个参数数组
bind的用法和call一样,但是bind方法的返回值是函数,需要调用才可以执行
10.原型链
(1).什么是原型?
每一个对象都有它的原型对象,它可以使用自己原型对象上的所有属性和方法。
(2).什么是原型链
原型链就是在当前对象中找不到的话,会在当前对象的原型对象上继续查找,直至undefined。
(3).获取原型的方法
1.是通过对象的__proto__获取。 2.是通过构造函数的prototype属性拿到原型。
11.闭包:
function a(){
let num = 0;
function b(){
console.log(num)
}
return b
}
let fun = a()
fun()
(1).闭包的条件:
第一点,在函数内部也有一个函数。
第二点,函数内部的函数里面用到了外部函数的局部变量。
第三点,外部函数把内部函数作为返回值return出去了。
(2).闭包的作用:
延长了局部变量的生命周期
在外部控制局部变量
(3).闭包的缺点:
局部变量会长期驻留在内存中,可能会造成内存泄漏。
(4).解决闭包带来的缺点:
减少使用闭包
及时释放
12.get和post的区别
1.get请求一般是取获取数据,post请求一般是去提交数据。
2.get请求参数会放在url中,隐私性较差。post请求参数放在body中,隐私性比较好。
3.get请求刷新服务器或者回退没有影响,post请求回退时会重新提交数据请求。
4.get请求可以被缓存,post请求不会被缓存。
6.get请求只能进行url编码,post请求支持多种
13.http状态码
100-199 客户端相应的某些动作。
200-299 请求成功。
300-399 重定向。
400-499 客户端的错误。
500-599 服务器错误。
14.同步与异步的区别
同步:只有当前API执行完成后,才能继续执行下一个API 异步:当前API的执行不会阻塞后续代码的执行
15.跨域请求有哪些方案
1.JSONP
2.CORS
3.nginx反向代理
16.常见的继承有哪些
1.原型链继承
2.构造函数继承
3.组合继承
4.原型式继承
5.class类继承
6.寄生式继承
17.箭头函数有哪些特征 简单描述一下
1.箭头函数没有自己的this
2.即使调用call、apply、bind也无法修改箭头函数中的this
3.箭头函数本身没有名字
4.箭头函数不能new,会报错
5.箭头函数没有prototype