zoukankan      html  css  js  c++  java
  • 前端面试题

    1.实现点击页面内任何元素,alert该元素的元素名

    2.给出js异步加载的方案,以及说明原理

    3.扩展string方法,使得所有字符串拥有trim方法

    4.如何拓展开发JQ插件

     1 /**
     2  * 第一题
     3  * 一开始的想法是想获取页面所有元素,依次绑定方法,突然又想到那直接绑定在doucument上,利用事件冒泡触发
     4  */
     5 //考虑兼容问题
     6 function bindEvent(el, event, fn) {
     7     if (el.addEventListener) {
     8         el.addEventListener(event, fn);
     9     } elseif (el.attachEvent) {
    10         el.attachEvent('on' + event, fn);
    11     } else {
    12         el['on' + event] = fn;
    13     }
    14 }
    15  
    16 bindEvent(document, 'click', function (e) {
    17     alert(e.target.nodeName);
    18 });
    19  
    20  
    21  
    22 /**
    23  * 2.异步加载方案
    24  * 常用的有ajax以及iframe,其中iframe使用已经越来越少
    25  */
    26 //iframe通过改变src值可以实现异步加载
    27 //ajax通过核心对象XMLHttpRequest可以实现异步加载
    28  
    29  
    30 /**
    31  * 3.通过String的Prototype可以扩展string的方法
    32  */
    33 String.prototype.trim = function () {
    34     return this.replace(/(^s*)|(s*$)/g, '');
    35 };
    36  
    37 /**
    38  * 4.如何扩展jq插件
    39  */
    40 //通过jq的extend方法或直接扩展fn属性
    41 //写法1:
    42 $.fn.extend({
    43     plugin: function () {
    44         //通过jq获取到的元素可能有多个,所以使用each可以保证所有元素都实现
    45         this.each(function () {
    46             //do something
    47         });
    48    
    49         //返回this保证jq的链式调用
    50         return this;
    51     }
    52 });
    53  
    54 //跟写法1相同
    55 $.fn.plugin = function () {
    56     this.each(function () {
    57          //do something
    58     });
    59  
    60     return this;
    61 };
    62 
    63 //使用方法:
    64 $("body").plugin();
    65 
    66 //写法2
    67  jQuery.extend({
    68     alert: function () {
    69         console.log(this);
    70     }
    71 });
    72 
    73 //写法2例子, 字符串去除头尾空格
    74 jQuery.extend({
    75     trim: function (str) {
    76         return str.replace(/(^s*)|(s*$)/g, '');
    77     }
    78 });
    79 
    80 
    81 var str = "     i am facial    ";
    82 str = $.trim(str);   //"i am facial"
  • 相关阅读:
    JQuery
    C#基础知识
    CSS
    学习.NET
    Grunt常见问题
    一个小型的类库
    SQL字符串处理!
    安装Java8以后,Eclipse运行异常解决方案
    谈薪四式让你谈好薪
    使用js实现input输入框的增加
  • 原文地址:https://www.cnblogs.com/facial/p/5800845.html
Copyright © 2011-2022 走看看