所在的位置: Web开发 >> HTNL >> 前端开发面试题

前端开发面试题

来自: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条性能优化原则)。

(1)减少







































白癜风医院
能治愈白癜风的医院



转载请注明:http://www.guyukameng.com/html/3000.html

  • 上一篇文章:
  •   
  • 下一篇文章: