栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > web前端

2015年10月丁香园Web前端面试题

web前端 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2015年10月丁香园Web前端面试题

下午一点半到,填了个人资料后HR拿了份笔试题,限时30分钟。

从笔试题来看,确实是招聘前端工程师的。

  • JS基础选择题
  • JS代码运行结果题
  • 重构优化DOM代码题
  • 盒模型
  • 事件代理代码题
  • 数组去重

Q&A

  • typeof返回六种类型: string, number, boolean, object, undefined, function
  • 因为分组选择符:小括号 console.log((1,2,3)) // 3 走后面的函数,返回2,类型是number
var f = (function f(){return "1";},function g(){return 2;})();typeof f;
  • 事件代理
// 事件处理工具,跨浏览器兼容性var EventUtil = {    // 这两个方法首先都会检测传入的元素是否存在DOM2级方法。    // 如果存在DOM2级方法,则使用该方法:    // 传入事件类型、事件处理函数、false(表示冒泡)    // 如果存在IE的方法,则使用第二种:    // 事件类型必须加上"on"前缀。    // 最后一种使用DOM0方法【基本不会执行】。    // 传入的handler如果是匿名函数的话,无法被移除。    addHandler: function(element, type, handler) {        if (element.addEventListener) { element.addEventListener(type, handler, false);        } else if (element.attachEvent) { element.attachEvent("on" + type, handler);        } else { element["on" + type] = handler;        };    },    removeHandler: function(element, type, handler) {        if (element.removeEventListener) { element.removeEventListener(type, handler, false);        } else if (element.detachEvent) { element.detachEvent("on" + type, handler);        } else { element["on" + type] = null;        };    },    //取得event对象    getEvent: function(event) {        return event ? event : window.event;    },    // 只有在事件处理程序期间,event对象才会存在;    // 一旦事件处理程序执行完成之后,event对象就会被销毁。    // 返回事件的目标    getTarget: function(event) {        return event.target || event.srcElement;    },    // 阻止事件的默认行为    preventDefault: function(event) {        if (event.preventDefault) { event.preventDefault();        } else { event.returnValue = false;        };    },    // 立即停止事件在DOM层次中的传播    // 取消进一步的事件捕获或冒泡    stopPropagation: function(event) {        if (event.stopPropagation) { event.stopPropagation();        } else { event.cancelBubble = true;        };    }}
  • 数组去重
function unique(arr){    if(arr && Array.isArray(arr)){        var i, len, map = {};        for(i = arr.length; i >= 0; i--){ if(arr[i] in map){     arr.splice(i, 1); } else {     map[arr[i]] = true; }        }    }    return arr;}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号