您的位置:首页 > 职场人生

js面试问题小白总结

2019-04-07 17:33 429 查看

js构造函数:
同普通函数的区别:
1.命名规范,一般函数采用驼峰的写法,构造函数一般首字母大写
2.使用New来生成实例对象
3.this指向,构造函数中的this指向我们即将要生成的实例化对象

构造函数的缺点:
所有的实例对象都可以继承构造函数中的属性和方法。但是,同一个对象实例之间无法共享属性
解决思路:
通过原型链prototype来实现,他相当于一个公共容器

Es6的class
类内部定义函数不用加function和函数之间不需要“,”

数据结构篇“
数组和链表的区别:
在内存上:
数组:数组相当于申请了一块连续的内存地址空间,编译阶段就确定了大小,在运行阶段一般是不能改变的,不能适应数据动态的删减的情况,当数据增加时,可能超出原先定义的范围个数,造成 数据越界,当内存减少时又可能会造成内存的浪费
链表:链表动态的进行存储分配,现用分配,可以适应数据的增加,删除等操作,链表必须根据next指针找到下一个元素。
数组可以直接根据下表存取数据,如果从表面看,需要快速访问数据,很少或者不插入和删除元素,就应该用数组,反之,如果需要经常插入和删除元素就需要用到链表数据结构。

vue的传值:
父—>子 props 子---->父 $emit 非父子组件:定义公共的仓库bus

自我介绍:

项目介绍:你遇到的问题,以及解决方案

js垃圾回收机制:
1.垃圾收集器会周期性的找出那些不再继续使用的变量,然后释放其内存。
包含两种方式:1.标记清除 2.引用计数
标记清除:当变量进入环境时,就标记为进入环境,当变量离开环境时就将其标记为离开环境,这些外界无法访问到的变量就是将要清除的变量。
2.引用计数:跟踪记录每个值被引用的次数,声明的时候是0,引用过就+1,引用过的变量重新再赋值就-1,当引用次数变为0,也就无法访问了。

从输入url到页面完成渲染的过程

304状态码:自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。进而节省带宽和开销
缓存机制:你上次请求的时间和你请求文件的修改时间做一个比较,假如文件没有修改过就直接返回304,说明不需要给你重新发响应数据。

js防抖:防止疯狂触发某个事件,给后端的数据交互造成压力,解决方法,时间延迟,设置一个时间间隔,若上一次和这一次的时间,间隔没有超过设定的事间间隔就不触发该事件。

vue:mvvm:底层实现原理

js继承-----原型继承、构造函数继承
function animate() {
this.name=“name”;
this.age=18;
}
function dog(shu){
//第一种继承,使用call回调 缺点:无法继承父类原型上的方法
// animate.call(this,“peng”,15);
this.shu=shu;
}
//第二种继承、原型继承 缺点:父类的属性不会初始化,
dog.prototype=new animate();

let cat=new animate();
let dog2=new dog();

console.log(dog2.age);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: