- call和apply的区别:都是改变调用函数的上下文,call直接接收arguments,apply需要把arguments打包成数组调用
- 什么是闭包:即使外部函数已经返回,内部函数仍然能够访问外围函数作用域里的变量
- event delegation是什么,有什么优点:利用事件冒泡把event handling放到高层节点去做,减少handler数量也好管理
- array和object的区别是什么:他问这个问题我有点懵,这两个东西相似度比区别少多了。。。于是扯了一大堆,最后发现她想问的是哪个是有序的哪个是无序的。。。
- dom是什么数据结构:想想上个题,果断回答tree。。。 FB
常考的几道题:
http://www.1point3acres.com/bbs/thread-104335-1-1.html
- what will happen after I input an url in a browser and hit enter? StackOverflow原题,把那几步写下来,我被问了至少三次!.
- How do you make a website faster? 什么css sprite, load picture only when needed, load js only when needed, 我记得我写了7个方法,也至少被问过三次.
- GET 和 POST区别!妈妈咪呀问了4,5次了。我现在可以说出6点不同至少。。
- what's cookie and how tow set it?-google 1point3acres
- what's iframe?
- what's csrf? (其实不太长考但是最好知道,我大概被问了两次?)
说一下我面过的前端吧,有简单的有难的,少说100道以上,这里随便说几个.
- Angular,backbone, ember三者的区别, 缺点是什么?
- 用原生js实现jquery的一些功能, 我被问过的有.filter()
- async的含义
- ;function()... 前面加;为什么, js中什么时候能省略; 什么时候不能
【一些前端算法问题】http://www.1point3acres.com/bbs/thread-317314-1-1.html
1: 写一个function,实现:sum(3)(4)(5)(6)( ) = 18. 最后的空参()必须有。tips:返回函数自身。但是这道题其实相当有难道。实现sum(3)(4)(5)(6)( ) // console.log 18 比较容易,但是sum实现多次,这还是很难的。因为return自身所以无法用闭包。tips,用函数的object属性。
代码:
function sum\(val\){
if\(sum.total === undefined\){
sum.total = 0;
}
if\(val\){
sum.total+= val;
return sum;
}else{
var result = sum.total;
sum.total =0;
return result;
}
}
console.log\(sum\(3\)\(4\)\(5\)\(6\)\(\)\); //18
console.log\(sum\(1\)\(2\)\(3\)\(\)\); // 6
2:
const countA = counts(“A”);
const countB = counts(“B”);
const countC = counts(“A”);
countA( ); // 输出1
countB( ); // 输出1
countC( ); // 输出2
tips:和上题的思路一样。
3: islands count LC小岛问题。被问到4次。followup 计算面积最大的小岛和面积最小的小岛。
4:
实现a seris of steps。经典js问题,一定要牢记。例子:实现一个call 完了再进行另外一个call。或者,依次实现一个数组的每位的运算。
三种方法实现:
- ES7的async + await
- ES6的generator + promise
- ES5的callback+closure