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的理解
关于promise的理解
7,get与post请求的区别
Get 请求能缓存,Post 不能。
Post 相对 Get 安全一点点,因为Get 请求都包含在 URL 里,
get会被浏览器保存历史纪录,Post 不会,但是在抓包的情况下都是一样的。
Post 可以通过 request body来传输比 Get 更多的数据,
Get 没有这个技术URL有长度限制,会影响 Get 请求,但是这个长度限制是浏览器规定的,不是 RFC 规定的。Post 支持更多的编码类型且不对数据类型限制