常见前端面试题及答案(25)

86.请指出$和$.fn的区别,或者说出$.fn的用途。

Jquery为开发插件提供了两个方法,分别是:

复制代码 代码如下:

 $.extend(obj);
 $.fn.extend(obj);
 

•1.那么这两个分别是什么意思?

$.extend(obj);是为了扩展jquery本身,为类添加新的方法。
$.fn.extend(obj);给JQUERY对象添加方法。

•2.$.fn中的fn是什么意思,其实是prototype,即$.fn=$.prototype;

具体用法请看下面的例子:

$.extend({

  add:function(a, b) {
    return a+b;
  }
})

$.add(5,8); // return 13

注意没有,这边的调用直接调用,前面不用任何对象。直接$.+方法名

$.fn.extend(obj);对prototype进行扩展,为jquery类添加成员函数,jquery类的实例可以使用这个成员函数。

$.fn.extend({

  clickwhile:function(){

    $(this).click(function(){
      alert($(this).val())
    })
  }
})

$('input').clickwhile(); // 当点击输入框会弹出该对象的Value值


注意调用时候前面是有对象的。即$('input')这么个东西。

87.请写出一个函数实现N!的计算。N取很大的值时,该怎么办?

使用循环、递归都能写出函数。

当N取值很大时,应该考虑把数值转化为字符串再进行运算。大数乘法再转化为大数加法运算,其具体算法应该有不少C语言实现,可以参考一下。

88.modulo(12,5) //2 ;问题:实现满足上述结果的modulo函数。

89."i'm a lasagna hog".split("").reverse().join("");问题:上面的语句的返回值是什么?

答案:"goh angasal a m'i";

90.(window.foo||(window.foo="bar"));问题:window.foo的值是什么?

答案:"bar"只有window.foo为假时的才是上面答案,否则就是它本身的值。

var foo="Hello";(function(){var bar="World";alert(foo+bar);})();alert(foo+bar);

91.问题:上面两个alert的结果是什么?

答案:"Hello World"和ReferenceError:bar is not defined

92.var foo=[];foo.push(1);foo.push(2);问题:foo.length的值是什么?

答案:2

有趣的问题:

91.你编写过的最酷的代码是什么?其中你最自豪的是什么?

92.在你使用过的开发工具中,最喜欢哪个?

93.你有什么业余项目吗?是哪种类型的?

94.你最爱的IE特性是什么?

数据冰冷的,但我们要让数据温暖起来,改变我们的生活!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1573.html