随笔分类 -  Javascript

摘要:1,多维数组扁平化。原数组[[0],[2,3,4],1,[1,[2,3]]],输出[0,2,3,4,1,1,2,3] 2,二叉树tree ,根节点是root,判断是否存在一条完整路径,其路径上节点的值之和为target,输出布尔值。 举例:下面的树,是否存在target=7的一条完整路径(从根节点到 阅读全文
posted @ 2019-08-28 16:18 Kai.Ma 阅读(5012) 评论(0) 推荐(0) 编辑
摘要:在Javascript中,最玄妙的特性之一,就是this的指向玄幻莫测,一会儿指向这一会儿指向那,让初学者十分伤脑筋。 本文总结一下,方便初学者掌握奥妙之处,同时方便老鸟温故而知新。 首先,看一段代码: 一个输出42,一个输出undefined,这是为何呢?? 相当于是 这是不是就比较容易懂了?OK 阅读全文
posted @ 2019-08-23 01:46 Kai.Ma 阅读(289) 评论(0) 推荐(0) 编辑
摘要:链接: https://pan.baidu.com/s/1skPxdNJ 密码: 7iwp 使用方法:安装完主程序后,将dmg包里charles.jar拖至/Applications/Charles.app/Contents/Java/里替换原来的charles.jar 然后打开程序,点击上面的菜单 阅读全文
posted @ 2016-10-01 17:01 Kai.Ma 阅读(2834) 评论(0) 推荐(0) 编辑
摘要:实践了下Moscrif,就是那个javascript开发native app的解决方案。与PhoneGap等方案不同的是,PhoneGap是糅合html的解决方案,不是真正的Native APP(性能打折扣);而Moscrif则是利用javascript开发Native APP,也即用javascript代替Object C/Java去开发Native APP。目前支持Android,IOS和Bada(三星的OS),比较有意思。代码的确是javascript,导出的demo游戏apk在自己的手机上跑得很欢。可免费使用,开源。前端转手机开发的有福了。目前还在体验中。参考:http://www.i 阅读全文
posted @ 2012-11-26 14:22 Kai.Ma 阅读(3138) 评论(2) 推荐(0) 编辑
摘要:/*** 背景是因为发现同事拼JS字符串喜欢用模板(String.replace),没错,用模板增加了可读性,* 但是相较于高效的Array.push然后Array.join("")拼接字符串而言,用replace有个性能问题。* 以循环1000次举例,ie下差距很大,ff下的Array.push也要快将近一倍。可运行下面的demo:* String.replace VS Array.push */var testType=2;//1=String.replace or 2=Array.push var s="",sArr=[],n=1000;//u c 阅读全文
posted @ 2012-10-25 16:38 Kai.Ma 阅读(3335) 评论(0) 推荐(0) 编辑
摘要:mouseenter/mouseleave 和 mouseover/mouseout的本质区别网上讲得比较多,但各种解释看得云里雾里,经过试验,他们的区别 it differs in that it doesn't bubble and that it isn't sent when the pointer is moved from one of its descendants' physical space to its own physical space 引自mozilla.org上面这句英文用不同的颜色区分以断句,方便理解。本质还是体现在冒泡上。可以通过下面两 阅读全文
posted @ 2012-09-25 20:16 Kai.Ma 阅读(446) 评论(0) 推荐(0) 编辑
摘要:bug情景大概是这样的:桌面.exe 内嵌一个网页.html,网页通过js调用桌面的js api接口函数fn1,然后接着调用js api函数fn2。结果fn1执行正常,但是随后的fn2死活不执行。后来经同事调试,用setTimeout解决了问题。setTimeout(function(){ window.external.fn2();},0);既然要用到setTimeout来重新安排一个events loop,那么可以肯定fn1和fn2同时调用的时候冲突了。后来想了下bug产生的原因应该是这样的:页面里的js调用fn1发送通知给桌面.exe,桌面.exe会处于“忙”的状态,这时候就忽略掉j.. 阅读全文
posted @ 2012-09-20 14:50 Kai.Ma 阅读(459) 评论(0) 推荐(0) 编辑
摘要:www.xxx.com网站有个登录页面login.htm,登录之后需要跳到之前的页面www.yyy.comurl形式如下:http://www.xxx.com/login.htm?returnurl=http://www.yyy.com long.htm代码里面通过javascript跳转:/***javascript获取URL指定参数对应的值*@methodgetQueryString*@param{string}s参数名*@return{string}*/functiongetQueryString(s){varreg=newRegExp("(^|&)"+nam 阅读全文
posted @ 2011-04-15 15:13 Kai.Ma 阅读(3694) 评论(2) 推荐(1) 编辑
摘要:每个对象都有一个原型,但不是所有对象都有prototype属性。实际上只有函数对象才有这个属性。 var a = function(){};var b=[1,2,3];a.prototype;//function(){}b.prototype;//undefined 构造函数本身也是一个对象,它也有 阅读全文
posted @ 2011-04-13 17:15 Kai.Ma 阅读(377) 评论(0) 推荐(0) 编辑
摘要:测试浏览器:IE 8,Firefox 由顶级域xxx.com写二级域www.xxx.com的cookie均可以。 由二级域www.xxx.com写顶级域xxx.com的cookie均可以。由二级域www.xxx.com写入二级域yyy.xxx.com的cookie均不可。 阅读全文
posted @ 2011-03-24 09:51 Kai.Ma 阅读(738) 评论(0) 推荐(0) 编辑
摘要:观察者模式又分为“推”和“拉”两种模式。从日常生活举例说明:订报纸。报商给我们送上门来,这是推模式;我们自己上报亭取,这是拉模式。从代码上二者的区别举例说明:拉模式是当通知来之时,通知的函数不带任何相关的信息,而是要订阅者主动去“拉”信息;推模式是当通知来之时,把所有相关信息都通过参数的形式“推给”订阅者。可以参见下图加以理解。假定:App是消息订阅者,SubjectBase和Subject是消息制造者,Observer是中间观察者。老框架App之间进行交互很困难,需要在框架端扩展很多自定义事件,然后其他App去实现事件响应函数。如果采用老框架,自定一个事件很费劲,首先需要修改上图旧框架里的n 阅读全文
posted @ 2011-01-27 16:08 Kai.Ma 阅读(1374) 评论(0) 推荐(0) 编辑
摘要:很简单的功能,代码也相当简单,看图。有兴趣下载拿去玩,做封包分析的时候应该有用的。代码下载:封包分析工具_十六进制toAscii字符.rar 阅读全文
posted @ 2010-08-29 22:29 Kai.Ma 阅读(1866) 评论(0) 推荐(0) 编辑
摘要:出于工作需要,有时候需要模拟用户的慢网速对产品做进一步测试&优化。目前有三个软件可以模拟慢网速:Fiddler,NetLimiter,Network Delay Simulator 阅读全文
posted @ 2010-08-10 15:47 Kai.Ma 阅读(14627) 评论(23) 推荐(6) 编辑
摘要:可能不全,不过内容已经足够各位切磋了 阅读全文
posted @ 2010-08-08 22:01 Kai.Ma 阅读(1464) 评论(0) 推荐(1) 编辑
摘要:Nicholas Zakas 的 Scalable JavaScript Architecture 阅读全文
posted @ 2010-08-05 10:35 Kai.Ma 阅读(582) 评论(0) 推荐(0) 编辑
摘要:打开http://www.vancl.com/发现采用的Asp.net,这点我感到很欣慰,毕竟国内采用.net技术体系的优秀网站少之又少。好奇之余右键-查看源码,却不由得皱起眉头,在此提几个可以让网站更快的前端建议 阅读全文
posted @ 2010-05-11 22:57 Kai.Ma 阅读(5726) 评论(53) 推荐(9) 编辑
摘要:今天和同事讨论优化前端缓存,在Firefox下按F5,总是发现有好几个iframe总是返回200状态,按理应该返回304才对。同事说“ctrl+F5是本次加载无视所有Expires设置,F5也会重新请求”。然后看了篇文章F5与Ajax深度调查,讲到了不同浏览器对F5响应是不同的。新发现:看来浏览器(包括IE/FF,其他未测试)的F5对text/html应该有特殊处理,F5刷... 阅读全文
posted @ 2010-02-21 16:15 Kai.Ma 阅读(516) 评论(1) 推荐(0) 编辑
摘要:网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况: 阅读全文
posted @ 2009-10-13 11:50 Kai.Ma 阅读(7857) 评论(3) 推荐(1) 编辑
摘要:理论上:时间复杂度都是O(N^2),排序速度 插入排序>选择排序>冒泡排序 阅读全文
posted @ 2009-09-02 11:21 Kai.Ma 阅读(8343) 评论(0) 推荐(1) 编辑
摘要:什么是浏览器的渲染(Render )?我的理解是“浏览器解析完html且构造完dom树之后,进行呈现的一系列操作,一般属于收尾阶段。” 阅读全文
posted @ 2009-08-25 15:38 Kai.Ma 阅读(2657) 评论(3) 推荐(0) 编辑