1,常见的数据类型的判断,深拷贝与浅拷贝
2,"===" 与 “==” 的区别
== 检查值相等, 允许类型转换:
两个等号我们称为等值符,当等号两边的值为相同类型时比较值是否相同,类型不同时会发生类型的自动转换,转换为相同的类型后再作比较
=== 检查值和类型相等, 不允许类型转换:
三个等号我们称为等同符,当等号两边的值为相同类型的时候,直接比较等号两边的值,值相同则返回true,若等号两边的值类型不同时直接返回false
3,## 垃圾回收机制
js垃圾回收机制有引用计数和标记清除两种
1. 引用计数
标量每被引用一次引用计数就会在元素的数字上个加1
当每次引用结束后会减1 当引用次数为0的时候 变量就可以被回收了 回收之后释放内存
2. 标记清除
声明的变量会添加一个标记,变量不在使用的时候会清除标记,
变量进入待删除状态 添加一个待删除标记 浏览器发现有待删除标记的变量就会直接回收
4,this 指向问题
有三个方法能改变this指向,fn.bind()、 fn.call() 、fn.apply()
他们都是改变this指向的方法 第一个参数都是this的指向
区别:
bind返回一个函数
call的参数是以散落的形式传递给函数
apply是以数组的形式传递参数
bind有返回值 返回值是调用bind方法的函数本身
call 没有返回值 他的第一个参数是要this的指向。第一个参数是谁,函数内部的this就指向谁其他参数以散落的形式传递给函数作为实参
apply 没有返回值 他的第一个参数是要this的指向。第一个参数是谁,函数内部的this就指向谁其他参数以数组的形式传递给函数作为实参
5, js的几种继承方式
6,关于Promise的理解
7,get与post请求的区别
Get 请求能缓存,Post 不能。
Post 相对 Get 安全一点点,因为Get 请求都包含在 URL 里,
get会被浏览器保存历史纪录,Post 不会,但是在抓包的情况下都是一样的。
Post 可以通过 request body来传输比 Get 更多的数据,
Get 没有这个技术URL有长度限制,会影响 Get 请求,但是这个长度限制是浏览器规定的,不是 RFC 规定的。Post 支持更多的编码类型且不对数据类型限制