1、对于js的异步 单线程机制的理解
面试官举例:setTimeout打印123的问题
答:大致就看一下这个文章吧
我当时回答这个问题的时候就有点智障,没搞明白面试官到底在问什么,然后就想当然地问东答西了。还是要多思考一下面试官到底想问什么,就算没明白可以多问一句,您的意思是指?(礼貌一点的问,面试官应该会给解释自己的问题的点在哪里)
2、闭包是什么 你是怎么理解的
我个人的回答就是解释了一下闭包的应用,对于私有变量的处理什么的,不过可以回答的更细致一点,参见阮一峰老师的学习笔记
闭包特别重要,我答得不算好,没解释闭包是啥就开始说能用在哪里,还是应该把原理说清楚,然后举例,不然会给面试官造成一种只知其然不知其所以然的感觉。
3、js的底层渲染
还是放个帖子
这个我之前确实没好好去想过,这次算是长记性了,再底层的东西,往深了挖掘都会得到新的理解和认识。
4、匿名函数是什么?
参考mdn上的概念理解,
5、this是啥?怎么用的
放一下mdn上的文档。
this的定义是啥,我最开始确实没考虑过这个问题,只知道有四种调用模式,方法调用模式、函数调用模式、构造器调用模式、apply调用模式。
第一种应该是最简单的了:
var obj = {
value : 12,
method : function(){
return this.value + 3;
}
};
很显而易见了,不做过多解释,都明白,具体参见《javascript语言精粹》28页
第二种,肉森老师演示过很多次了
var page = {
data : {
num1 : 1
},
onLoad : function(){
var _this = this;
$(document).on('click','#div', function(){
console.log(_this.data.num1);
});
},
};
第三种,感受一下肉森老师写的分页组件,里面有用到这个方法,简写一下用法:
var Pagination = function(num){
this.pageNum = num;
};
Pagination.prototype.getPage = function(){
return this.pageNum;
};
var newPagination = new Pagination(12);
console.log(newPagination.getPage());
第四种:就是apply和call的用法了,具体不说了,还是说说bind,为什么呢,我被问了,但是我只知道原理,没用过,很尴尬。
还是放个帖子
而且谈及apply call 以及bind的区别,还是放个帖子
6、改变this的值,应该怎么做?
参见上一题
7、匿名函数的this指向哪里?
window,我猜的,但是没想到猜对了,但是严格模式下还指向undefined,详见《js高级程序设计》,但是我觉得这个问题还有的深挖,先放着,之后继续看。
8、为啥要把js文件放到body最后?
优化嘛,这个地方其实还可以提一下defer和async以及合并脚本啥的。
看个帖子
讲的很详细
简言之
9、http协议的了解
协议还是得好好看看,这就不展开说了,多看书,书上都有。
闲聊的部分就不多说了,总结多看书,看好书,不仅限于技术类,人文历史啥的也多看点,不能除了代码就胸无点墨了,说给自己听,也与大家共勉。
网友评论