代码改变世界

随笔档案-2013年04月

腾讯的三轮面试(web前端)

2013-04-27 23:59 by Barret李靖, 17339 阅读, 收藏, 编辑
摘要: 笔试就不说了,说多了都是泪,选择题基本不会,幸好填空题和附加题都拿下了,貌似最后78分。【一面】~=110分钟 2013/04/24 11:20 星期三进门静坐30分钟做题。填空题+大题+问答题>>填空题何时接触电脑 何时接触前端运算符 字符串处理 延时 display position XMLHttpRequest 正则Jquery绑定事件 cookie>>大题BOM浏览器信息浏览器兼容性举例闭包作用与举例新闻ul列表,插入3个,获取index全文单词首字母大写ajax过程>>逻辑题任何时间分针和时针夹角文章单词(字母)频率出现最高30分钟等到车概率是70 阅读全文

JavaScript垃圾回收机制

2013-04-27 15:14 by Barret李靖, 9638 阅读, 收藏, 编辑
摘要: 一、垃圾回收的必要性 下面这段话引自《JavaScript权威指南(第四版)》 由于字符串、对象和数组没有固定大小,所有当他们的大小已知时,才能对他们进行动态的存储分配。JavaScript程序每次创建字符串、数组或对象时,解释器都必须分配内存来存储那个实体。只要像这样动态地分配了内存,最终都要释放这些内存以便他们能够被再用,否则,JavaScript的解释器将会消耗完系统中所有可用的内存,造成系统崩溃。 这段话解释了为什么需要系统需要垃圾回收,JS不像C/C++,他有自己的一套垃圾回收机制(Garbage Collection)。JavaScript的解释器可以检测到何时程序不再使用一... 阅读全文

JS闭包的用途

2013-04-24 08:41 by Barret李靖, 973 阅读, 收藏, 编辑
摘要: 我们来看看闭包的用途。事实上,通过使用闭包,我们可以做很多事情。比如模拟面向对象的代码风格;更优雅,更简洁的表达出代码;在某些方面提升代码的执行效率。1. 匿名自执行函数我们知道所有的变量,如果不加上var关键字,则默认的会添加到全局对象的属性上去,这样的临时变量加入全局对象有很多坏处,比如:别的函数可能误用这些变量;造成全局对象过于庞大,影响访问速度(因为变量的取值是需要从原型链上遍历的)。除了每次使用变量都是用var关键字外,我们在实际情况下经常遇到这样一种情况,即有的函数只需要执行一次,其内部变量无需维护,比如UI的初始化,那么我们可以使用闭包:var datamodel = { ... 阅读全文

IE6 bug集

2013-04-24 08:08 by Barret李靖, 780 阅读, 收藏, 编辑
摘要: 1.IE6的3像素偏移BUG 当浮动元素与非浮动元素相邻(注意这里的相邻可以是纵向的也可以是横向的)时,这个3像素的Bug就会出现,它会偏移3像素。实际表现就是两个元素之间产生了一道缝隙!解决方法很简单,将两个元素都浮动就OK了。此BUG深层的原因是非浮动元素的layout未触发,所以这里只要是能够触发layout的css都可以解决问题。2.IE6 双倍边距问题 当浮动元素设置margin边距时,边距会加倍。解决方法是给浮动元素加上display:inline属性。3.IE6下空标签高度问题 当你把标签的高度设置为0-19内的数字时,IE6会一致的显示为19px高。解决方法:给标签加上over 阅读全文

最受欢迎的几种图片格式及其常见用法

2013-04-22 18:18 by Barret李靖, 1212 阅读, 收藏, 编辑
摘要: 从某种程度上说,判断一个网页设计师是否优秀,可以从其在WEB开发(或网页设计)中是否合理的采用各种图片格式得出结论。事实上,或许所有人都知道图片存在GIF,JPG和PNG等格式,但并非所有人都知道它们之间的具体区别和使用技巧。 接下来,将给大家介绍:WEB开发中几种最受欢迎图片格式的前世今生以及如何正确的使用它们。JPEG JPEG格式是一种大小与质量相平衡的压缩图片格式。通俗一点讲,就是:高的压缩比=低的图片质量=小的文件大小。反之,低的压缩比=高的图片质量=大的文件大小。由于JPEG文件无法保持100 %的原始图像的像素数据,所以它不被认为是一种无损图像格式。用途: 由于这种极其... 阅读全文

如何向开源社区提问题

2013-04-22 16:24 by Barret李靖, 1703 阅读, 收藏, 编辑
摘要: 大家提问题前,请仔细阅读下这篇文章。高质量的提问,不光有助于问题的快速解决,还能赢得社区的尊重。如何向开源社区提问题使用软件产品,或多或少都会遇到问题。对于商业产品,我们可以咨询客服寻求帮助。对于公司自己研发的产品,我们可以直接请教专家同事。但对于开源软件,在遇到问题时,如何才能及时有效地寻求帮助呢?本文以开源类库Sea.js为例,说说我心目中的最佳实践。提问前遇到问题时,心里都很着急。在决定向开源社区提交问题前,最好先做做以下功课:尝试从官方文档中找到答案确保自己阅读过至少一次官方文档。这样在遇到问题时,如果能回忆起只言片语,就可以再去读一遍相关文档,问题往往也就解决了。Google 是你的 阅读全文

利用XMLHttpRequest响应头部的Date来做倒计时

2013-04-13 13:46 by Barret李靖, 3909 阅读, 收藏, 编辑
摘要: 关键词:倒计时 XMLHttpRequest readyState Date AJAXProblem [问题描述]先看看这个:(搜狗团购网站)还剩多久多久,这个东西你是怎么做的。不推荐方案脑残方案一: 把截止时间保存到cookie中,然后与现在时间做差值,进行比较。 方案评价: 1. 如果用户cookie没开怎么办? 2. cookie不宜过多,cookie过期管理等麻烦!脑残方案二: 把服务器的本地时间作为参数送到客户端,然后js相关处理 方案评价: 因网络延迟等原因存在误差屌丝看完变高富帅^_^ 先给你看一张图:(向服务器请求的某个任意文件)好像有的同学瞬间就... 阅读全文

摸透select和他的儿子们options

2013-04-11 13:59 by Barret李靖, 1249 阅读, 收藏, 编辑
摘要: 关键词:select option options selectedIndex remove add关于select的→API,自己去看,不多说了。select & option & optgroupoptgroup就是起到一个分组的作用。<!--common--><select id="s1"> <option value="--s--" selected="selected">----select----</option> <option value=" 阅读全文

打开窗口,关闭窗口

2013-04-10 16:06 by Barret李靖, 2186 阅读, 收藏, 编辑
摘要: 关键词:window.open() window.close() showModalDialog() 兼容性 测试等。 本文默认你对以上函数参数有基本了解。window.open window.open如果没有加第三个参数,则浏览器一般都会在新的标签页打开(除非你设置了新建窗口打开) 而有的时候,我们需要他弹出来。就想这个一样: 上述方式是:window.open(/*URL*/"",/*Name*/"",/*args*/"width=300,height=400"); 但是搜狗是不会挺你的话的,他不会新建一个你设定的窗口打开,而是在 阅读全文

JavaScript跨域(3):HTTP access control (CORS)跨域

2013-04-09 11:08 by Barret李靖, 1532 阅读, 收藏, 编辑
摘要: 网上看了很多博客和文档,感觉还是Mozilla大大写的最简单、最好懂,不过文字很长。。 原文链接:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS 要整篇翻译,我肯定吃不消,当然也没这个必要,下面就提要说一点吧,这个方法还存在兼容性问题,尽管有相应的解决手段,但是觉得用起来不是特别爽。Cross-site HTTP requests are HTTP requests for resources from a different domain than the domain of the resource... 阅读全文

javascript中有趣的反柯里化

2013-04-09 09:41 by Barret李靖, 2187 阅读, 收藏, 编辑
摘要: 相关阅读 1.JKisJK 2.月影 3.张鑫旭AlloyTeam作品反科里化的话题来自javascript之父Brendan Eich去年的一段twitter. 近几天研究了一下,觉得这个东东非常有意思,分享一下。先忘记它的名字,看下它能做什么.不要小看这个功能,试想下,我们在写一个库的时候,时常会写这样的代码,拿webQQ的Jx库举例。我们想要的,其实只是借用Array原型链上的一些函数。并没有必要去显式的构造一个新的函数来改变它们的参数并且重新运算。如果用uncurrying的方式显然更加优雅和美妙,就像这样:还能做很多有趣和方便的事情.甚至还能把call和apply方法都uncu... 阅读全文

JavaScript跨域(2):JSONP跨域

2013-04-03 22:02 by Barret李靖, 1445 阅读, 收藏, 编辑
摘要: 祭祖归来,继续细说跨域~ 话说上次我们讲到了啥玩意儿是跨域,至于怎么跨域还没开始动笔。今天就说说JSONP跨域。 JSONP(JSON with padding)是JSON的一种“使用模式”,它是非官方协议允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。 P.S: 1.楼主懂一点点php,所以DEMO中的后台语言就用PHP来演示。 2.为了方便测试,楼主弄了SAE和BAE。Prelude [前奏] 如果我们请求一个JSON数据:(SAE地址:http://qiandu... 阅读全文