前序
大四下,创业失败开始找工作,开始了紧张繁忙的复习、笔试、面试,其中也遇到了许多挺有意思的题目,总结我遇到的挺有意思的一些Node或者JavaScript的笔试题目。
1、node如何利用多核,请尽可能的给出几种解决方案。
答:①Multiprocessor Deployment: Using a Proxy,即每个核跑一个Node进程(fork),但是这种方式只是充分的利用CPU的资源,并没有解决并发问题,具体解决办法传送门:
https://segmentfault.com/a/1190000007343993
②pm2,当然这个方法与前一种方法类似,都是fork进程,换汤不换药。
2、下面这段代码运行的结果是什么?
for(var i = 0; i <= 3; ++i){
process.nextTcik(function(){
console.log(i);
});
}
这题不用多解释,注意条件中多给的++i与i++的区别,前者是先加后计算,后者反之,结果是4 4 4 4;
3、下面这段代码运行的结果是什么?
var start = new Date().getTime();
setTimeout(function(){
var end = new Date().getTime();
console.log("运行耗时:",end-start,"ms");
}, 500);
while(new Date().getTime() – start <= 1000){};
这题笔试时候答了1500,也不知道当时是怎么想的-。-,本题就是考的知识点应该就是一个async的问题,正确答案是1000左右,头疼被我想成了Java里的sleep()。。。
4、C程序可以用pstack pid查询某个程序的运行堆栈,jstack pid可以参看Java程序运行的堆栈,node怎么实现类似的nodestack工具?
笔试的时候这道题我没有答出来,实际上我也没找出参考答案,求高人指点
5、用node实现ping
答、这道题我想应该是node中如何使用ping,也就是查看网络是否畅通,答题的时候以为要引入第三方库,后来想了想应该可以这样实现:
request.head(‘http://’ + ip, function(error, response, body){
if (error) {
//…
} else {
//...
}
});
没错,就是直接访问ip….
总结
面试还是挺紧张的,还有就是,仅靠平时积累的经验要通过应聘应该很难(站在一个应届生的角度来说),复习、笔记、刷题一样都不能少。