1.函数在定义它们的作用域里执行,而不是在执行它们的作用域里运行。
2.js 斐波那契数列实现
function fib(n){
if(n==1||n==2){
return 1;
}
return fib(n-1)+fib(n-2);
}
3.js 实现快速排序
4.unshift方法有一个参数,即要添加到数组头部的元素,而shift方法则没有参数,而是返回从数组头部删除的元素。
5.AMD推崇依赖前置,在定义模块的时候就要声明其依赖的模块;CMD推崇就近依赖,只有在用到某个模块的时候再去require。
6.标准盒模型和IE盒模型
7. angularjs service provider 内置的哪些是用provider D3.js画圆环
8.chrome里面的bug,click的时候会触发mousemove
解决方法:
obj={};
mousedown:function(e){
obj.x=e.pageX;
obj.y=e.pageY;
}
mousemove:function(e){
if(e.pageX==Obj.x){
return false;
}
}
事件(this.事件());
9.iframe优缺点。
10.《高性能javascript》《javascript语言精粹》《javascript Dom高级程序设计》《高性能网站建设指南》《高性能网站建设进阶指南》
11.为什么浏览器里面var a=1;console.log(a);浏览器会浅浅的跟一个undefined,是因为javascript的预声明原则。变量提升,实际是在它(运行)时,才给其赋值。
弄清楚:编译器、作用域、引擎这三个概念。
12.javascript语言采用的是静态作用域规则。但是,function中this是个例外,this并不指function对象本身,也不是指function的作用域对象。而是在运行时绑定到特定的对象上。即它采用的是动态作用域规则。
一个function即便是定义在一个对象中,作为对象的一个“方法”,它也只是个普通函数而已,跟其他函数没有任何区别。在执行时仍然需要为ths绑定一个具体的对象。
13.当事件触发时,注册到这个事件的事件监听器被依次调用,事件参数作为回调函数参数传递。
14.使用mock实现前端自动化测试。
15.代码压缩用 google的 closure compiler。该工具需要java环境的支持,所以使用前你可能需要先在机子上装jre,然后再获取closure进行使用。
16.原型链
17.这时再来理解nodejs的异步io为何高效,我们编译好的程序会运行在一个程序空间中,程序空间的代码如何和计算机交互,就是发送指令到内核空间,真正的逻辑运行都在内核空间中完成,如果是其他服务器语言,会等待内核空间运算完成并返回执行结果后才接着执行程序空间中的下一段指令,node.js在这一过程中是不等待内核空间,而是直接挨个执行程序空间的所有指令。
18.事件委托,原型链,继承,闭包
19.优化网站和文件性能的方式;doctype严格模式 混杂模式 ;get post区别
20.跨域的几种解决方式
21.动画效果有哪几种,css? jquery?
22.javascript异步处理机制;docker 提升页面性能的方式
23.css选择器的优先级
24.抓包工具charles
25. webpack grunt less sass css