摘要: 今天去参加了某公司的二面,面试过程很轻松,跟面试官就是聊天的方式。但是通过这次面试发现自己对很多知识点理解的还是不到位,在这里就把我答的不太好的问题写出来,算是一种总结吧。 1.谈性能优化的时候提到了setTimeout,面试官接着抛出了下面这么一个问题,你觉得下面两种方式的区别: 方式1:funciton a(){ dosomething1; setTimeout(function(){ process; },1000) ; dosomething2;} 方式2:function b(){ dosomething3}setInterval(func... 阅读全文
posted @ 2013-10-15 21:51 沙漠孤鹰1140 阅读(685) 评论(1) 推荐(3) 编辑
摘要: 1.前言 国庆长假,一直宅在宿舍,就开始不断地在博客园中浏览,发现很多菜鸟(包括本人)都写了一个自动分页的功能,也就是通过js来实现页面的分页。老实讲,以前做项目,分页的功能都是后端来做,这项工作还真不适合前端来实现,页面的性能太重要了。但是看到这么多人写,手就开始痒了,那自己也索性写下吧。2.代码 这个功能比较简单,索性就直接上代码了。 html section 1 ... 100__________________________________________________________js sectionfunction Divid... 阅读全文
posted @ 2013-10-06 10:29 沙漠孤鹰1140 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 1.前言 昨天碰到一道关于如何解决有序数组的连接问题,这是一个很常见的问题。但是这里要考虑到代码的效率问题,因为要连接的数组都是有序的,这是一个非常重要的前提条件。2.简单但效率不高的算法我首先想到的是使用内置的concat方法,然后再对其进行排序,这种方法完全没有考虑到数组是有序的前提条件,代码如下:function concatSort(arrA,arrB){ return arrA.concat(arrB).sort();} 为了弄清楚sort排序到底使用的是什么算法,特地到看了V8引擎的算法(链接:这里),大概意思是当数组的长度较短的时候使用的是插入排序(Insertio... 阅读全文
posted @ 2013-10-01 11:49 沙漠孤鹰1140 阅读(767) 评论(0) 推荐(0) 编辑
摘要: 1、前言 今天参加了 某公司的在线笔试,其实题目很简单,一道是关于数组去重,另外一道就是字符串替换的问题。这些问题都是网上很常见的问题,但是答的并不是很理想,如果打分的话只能得到70分,面试官也说我的编程水平中等,这样的评价我是完全认同的。现在就回过头来用多种办法求解这两道题吧。2、数组去重方法1:使用hash的方法解决该问题2.1.1 初次写出的代码Array.prototype.unique = function(){ var arr = this, obj = {}, result ,i, len = arr.length; for(i=0 ; i= 0 ? index : in... 阅读全文
posted @ 2013-09-29 22:09 沙漠孤鹰1140 阅读(1349) 评论(6) 推荐(0) 编辑
摘要: 1.前言 今天下午参加一个面试,对方问我写不写博客,这时候才猛然意识到好久没写东西了。最近一直在外边实习,每天有很多经历和挑战,但是却没有及时地记录下来,这一点必须得批评自己,以后得经常把自己遇到的问题及时记录下来。 言归正传,今天面试卡住的第一个问题就是问我如何获取mouseenter、mouseleave中的两个对象?对这两个对象我只知道它们的特点是均不冒泡,是DOM新规范定义的方法,至于其他东西就不知道了。2.二者的区别(以mouseover、mouseenter为例) mouseover and mouseenter aaaaaa 当xxx = mo... 阅读全文
posted @ 2013-09-26 21:03 沙漠孤鹰1140 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 参考:http://ued.taobao.com/blog/2012/06/debug-with-chrome-dev-tool/http://guoshuang.com/frontend/chrome-console-command/http://www.cnblogs.com/wukenaihe/archive/2013/01/27/javascript%E8%B0%83%E8%AF%95.htmlhttp://han.guokai.blog.163.com/blog/static/136718271201321402514114/ 阅读全文
posted @ 2013-08-02 14:24 沙漠孤鹰1140 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 0.前言 以前看过瀑布流,但是没有自己动手写代码,最近偶然又看到了,那索性就自己动手写写代码。 瀑布流的实现方式大致上有三种:固定列数的浮动布局、自适应的绝对定位布局、css3的多列布局,下面就分别描述。1.固定列数的浮动布局 该方法比较简单:计算出高度最小的那一列,然后2.绝对定位 思考:1.计算可以当前页面的列数; 2.用一个数组记录各个列的高度; 3.把新的数据添加到最短列上,然后更新类的高度。 遇到的问题: 1.页面的性能问题:当缩放浏览器窗口时会不断触发resize事件,如果每次都相应的话,会很耗性能,因此需要缩放动作结束后再执行重排方法。使用setTimeout和cle... 阅读全文
posted @ 2013-07-30 17:30 沙漠孤鹰1140 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 1、加载并解析XML文件 function loadXMLFile(url){ var xmldoc if(window.ActiveXObject){ xmldoc = new ActiveXObject("Microsoft.XMLDOM"); }else if(window.implementation){ xmldoc = document.implementation.createDocument("","",null); } xmldoc.async = false; xml.load(url);}2、加载并解析XML字符 阅读全文
posted @ 2013-07-22 15:07 沙漠孤鹰1140 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 0.前言 老实讲,看设计模式真得很痛苦,一则阅读过的代码太少;二则从来或者从没意识到使用过这些东西。所以我采用了看书(《js设计模式》)和阅读博客(大叔、alloyteam、聂微东)相结合的办法,勉勉强强写了这么多随笔,当然写随便不是为了炫耀,而是对知识进行总结,以便加深理解。1.职责链模式是什么? 有一个请求,多个对象都可以处理该请求,但是到底哪个对象要处理该请求在开发期是不确定的,也就是说请求的发送者和接受者是一种动态的关系。所以需要将这些对象链成一条链,并沿着这条链传递该请求,... 阅读全文
posted @ 2013-07-04 11:00 沙漠孤鹰1140 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 0.前言 早上好,早晨的时光总是美好的,坐在空调屋里,看着外边的蓝天白云,不停地敲击着键盘,多么美好地享受,也许屌丝就是如此容易满足。1.什么是命令模式? 用于将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;可以对请求排队或记录请求日志以及执行可撤销的操作。也就是说该模式旨在将函数的调用、请求和操作封装成一个单一的对象,然后对这个对象进行一系列的处理。此外,可以降低调用对象和接受对象之间的耦合,提高了模块化程度。2.使用条件 ... 阅读全文
posted @ 2013-07-04 09:43 沙漠孤鹰1140 阅读(765) 评论(0) 推荐(0) 编辑