来自:markyunMy-blog·GitHub.
链接: var_count=0;
varm1=function(){
//...
};
varm2=function(){
//...
};
turn{
m1:m1,
m2:m2
};
})();
AMD(Modules/Asynchronous-Definition)、CMD(CommonModuleDefinition)规范区别?
异步加载的方式有哪些?
(1)defer,只支持IE
(2)async:
(3)创建script,插入到DOM中,加载完毕后callBack
documen.write和innerHTML的区别
document.write只能重绘整个页面
innerHTML可以重绘页面的一部分
call()和.apply()的区别?
例子中用add来替换sub,add.call(sub,3,1)==add(3,1),所以运行结果为:alert(4);
注意:js中的函数其实是对象,函数名是对Function对象的引用。
functionadd(a,b)
{
alert(a+b);
}
functionsub(a,b)
{
alert(a-b);
}
add.call(sub,3,1);
Jquery与jQueryUI有啥区别?
*jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。
*jQueryUI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。
提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等
JQuery的源码看过吗?能不能简单说一下它的实现原理?
jquery中如何将数组转化为json字符串,然后再转化回来?
jQuery中没有提供这个功能,所以你需要先编写两个jQuery的扩展:
$.fn.stringifyArray=function(array){
turnJSON.stringify(array)
}
$.fn.parseArray=function(array){
turnJSON.parse(array)
}
然后调用:
$().stringifyArray(array)
针对jQuery的优化方法?
*基于Class的选择性的性能相对于Id选择器开销很大,因为需遍历所有DOM元素。
*频繁操作的DOM,先缓存起来再操作。用Jquery的链式调用更好。
比如:varstr=$(a).attr(hf);
*for(vari=size;iarr.length;i++){}
for循环每一次循环都查找了数组(arr)的.length属性,在开始循环的时候设置一个变量来存储这个数字,可以让循环跑得更快:
for(vari=size,length=arr.length;ilength;i++){}
JavaScript中的作用域与变量声明提升?
如何编写高性能的JavaScript?
那些操作会造成内存泄漏?
内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。
setTimeout的第一个参数使用字符串而非函数的话,会引发内存泄漏。
闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)
JQuery一个对象可以同时绑定多个事件,这是如何实现的?如
何判断当前脚本运行在浏览器还是node环境中?(阿里)
通过判断Global对象是否为window,如果不为window,当前脚本没有运行在浏览器中
其他问题
你遇到过比较难的技术问题是?你是如何解决的?
常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?
页面重构怎么操作?
列举IE与其他浏览器不一样的特性?
99%的网站都需要被重构是那本书上写的?
什么叫优雅降级和渐进增强?
WEB应用从服务器主动推送Data到客户端有那些方式?
对Node的优点和缺点提出了自己的看法?
*(优点)因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,
因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。
此外,与Node代理服务器交互的客户端代码是由JavaScript语言编写的,
因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。
*(缺点)Node是一个相对新的开源项目,所以不太稳定,它总是一直在变,
而且缺少足够多的第三方库支持。看起来,就像是Ruby/Rails当年的样子。
你有哪些性能优化的方法?
(看雅虎14条性能优化原则)。