随笔分类 -  JavaScript

摘要:01转换法:思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标代表的数被选中,为0则没选中。首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为“01”组合;同时将其左边的所有“1”全部移动到数组的最左端。当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得到了最后一个组合。例如求5选3的组合:1 1 1 0 0 //1,2,31 1 0 1 0 //1,2,41 0 1 1 0 //1,3,40 1 1 1 0 //2,3,41 1 0 0 1 //1,2,51 0 1 阅读全文
posted @ 2013-10-18 10:11 雨知 阅读(7815) 评论(3) 推荐(3) 编辑
摘要:最近写一个jQuery插件,在最后完成优化时,对比发现压缩后文件比较大,就思考那些是可以被修改和优化的,发现压缩原理也有很大的空间可以学习,通过这次对YUI Compressor压缩JavaScript深有体会,那些是可以被压缩的,特别是那些不能被压缩的,都需要很清楚,这样才能写出来的插件才能保持文件更小,代码更精巧,而且优化的过程中也会发现代码待改良的地方,对以后也有很大帮助。随便在网上找来一篇文章做记录了。YUI Compressor 压缩 JavaScript 的内容包括:移除注释 移除额外的空格 细微优化 标识符替换(Identifier Replacement)YUI Compres 阅读全文
posted @ 2013-01-07 12:30 雨知 阅读(2304) 评论(0) 推荐(1) 编辑
摘要:概念引自维基百科:根据由万维网联盟(W3C)于1996年发行并于1999年修订的CSS1所指定的,当任意一个块级元素的宽度或高度被显式指定,它应当只确定这个可见元素自身(内容区)的宽度或高度,而padding, border和margin随后被应用。Internet Explorer在“怪异模式” 则把内容,内边距(padding)和边框(border)全部包括在一个指定的宽度或高度之内;这导致它呈现出一个比遵从标准行为的结果更窄或者更短的盒子。如下图:应用理解盒模型,不管是对于设置一个元素外边据、边框、内边距,高宽CSS样式的准确应用,还是对于使用JavaScript去计算盒子的宽度、高度都 阅读全文
posted @ 2012-12-31 09:19 雨知 阅读(1581) 评论(4) 推荐(0) 编辑
摘要:前端有多少事情可以做,能做到多好。一直在关注各大公司UED方面的知识,他们也代表了前端的力量,而且也很乐意和大家分享,把应用到项目的知识归类整理,再写成博客搬到网上来,充实这前端的内容,也是为想追寻和学习的人提供了场所,为想接触到一些前沿的知识提供了去处,感谢有这么一群人。大的科技公司基本都有自己的... 阅读全文
posted @ 2012-12-02 17:19 雨知 阅读(37200) 评论(43) 推荐(20) 编辑
摘要:JavaScript的分层概念为了使代码更清晰,减少冗余,提高代码重用率,和css分层一样:base层:最低端,给common层和page层提供接口的,两个职责:1:不同浏览器之间js的差异提供统一接口;2:扩展js语言底层提供的接口。common层:提供可复用的组件,和页面内具体功能无关。common层的功能是给page层用的。page层:最顶端,该层主要是完成各个页面内的功能需求。良好的编程习惯命名空间和匿名函数的使用避免JS冲突,避免全局变量泛滥,划分模块。生成命名空间是一个很常用的功能,可以将其封装为一个函数。var GLOBAL = {};GLOBAL.namespace = fun 阅读全文
posted @ 2012-11-08 21:53 雨知 阅读(2829) 评论(9) 推荐(3) 编辑
摘要:安装在过去,Node.js一直不支持在Windows平台下原生编译,需要借助Cygwin或MinGW来模拟POSIX系统,才能编译安装。幸运的是2011年6月微软开始与Joyent合作移植Node.js到Windows平台上(http://www.infoq.com/cn/news/2011/06/node-exe ),这次合作的成果最终呈现在0.6.x的稳定版的发布上。这次的版本发布使得Node.js在Windows平台上的性能大幅度提高,使用方面也更容易和轻巧,完全摆脱掉Cygwin或MinGW等实验室式的环境,并且在某些细节方面,表现出比Linux下更高的性能,细节参见http://ww 阅读全文
posted @ 2012-10-31 09:32 雨知 阅读(2243) 评论(1) 推荐(2) 编辑
摘要:JavaScript实现继承的几种方式开发中常见的几种JavaScript继承方式,了解每一种都会有提高的,直接贴代码吧,更直接。具体的JavaScript面向对象的概念理解参见JavaScript必备知识系列-面向对象知识串结JavaScript必备知识系列,总目录参见JavaScript必备知识系列-开篇拷贝继承extend(obj) { var args = Array.prototype.slice.call(arguments, 1); args.forEach(function(source) { for(var prop in source) { obj[prop] = s... 阅读全文
posted @ 2012-09-13 21:29 雨知 阅读(1128) 评论(0) 推荐(0) 编辑
摘要:ArrayJavaScript的数组在程序中使用的频率非常高,而且Array本身提供的方法也异常强大。如果不能很好的掌握,不仅对不光是在写程序会卡壳或绕弯,而且对于其他的插件的源码的学习理解都会有障碍。本文主要列举常用的函数,已经ECMAScript 5提供的新的数据方法。ECMAScript中的数组与其他多数语言中的数组有着相当大的区别。虽然ECMAScript数组与其他语言中的数组都是数据的有序列表,但与其他语言不通的是,ECMAScript数组的每一项可以保存任何类型的数据,而且ECMAScript数组的大小事可以动态调整的,可以随着数据的添加自动增长以容纳新增数据。1、 数组检测var 阅读全文
posted @ 2012-09-12 22:20 雨知 阅读(1373) 评论(4) 推荐(5) 编辑
摘要:开篇记这个系列部分是JavaScript最基础的东西,必须透彻明白,不然以后学习的过程中会有很大的阻力,我是亲切的感觉到了,不过也是这个过程让我学到了很多东西,也理解的更深了。(最好的方式就是看优秀的JavaScript库和插件源码,很苦痛也很直接)。 希望能够直奔主题的方式,方便在任何时候查看都能直接看到重点,如果要理解这个重点之前有一堆概念东西要理解,我想是有地方可以找到的,当你想找的时候。所以,里面的结构也是,现在主题,后概念,概念的东西,有的看了示例或重点本身,就已经很明显能理解了。为了不被以后再看迷惑或者混淆,概念的东西都是摘自官方或则来自权威作者的解释说明。 系列部分不断添加,希望 阅读全文
posted @ 2012-09-12 21:36 雨知 阅读(4235) 评论(7) 推荐(12) 编辑
摘要:摘要最近在看JavaScript高级程序设计(第三版),面向对象一章20多页,来来回回看了三五遍,每次看的收获都不一样。第一遍囫囵吞枣,不求甚解,感觉恍然大悟,结果晚上睡觉一想发现很多问题,什么都不明白,再看第二遍,发现原来是这样。过了几天一用,发现手写起来原来还是在凭记忆,于是下一遍,下一遍...单凭记忆去弄清楚东西很不靠谱,时间一长脑袋空白。特别是技术上的很多思想和原理,只看不练,即便当时想得特别清楚,过久了也会忘。再者就是网上一些东西,只能说是提供了一种便捷的查看途径,事后还是自己总结为好,毕竟大多都是个人总结,一些概念很难讲的很清楚,而且两个人谈同一件事情,一般说的步骤和章节都是不同的 阅读全文
posted @ 2012-07-16 09:27 雨知 阅读(3095) 评论(18) 推荐(6) 编辑
摘要:平常随手的一些JS小练习,值得记一下的先搁这吧,有空可以翻一下,持续添加...Array排序1、sort()方法比较的是字符串,按照升序排序数组项(小在前,大在后)var values = [0,1,5,10,15];values.sort()alert(values); //0,1,10,15,52、sort()方法可以接受一个比较函数作为参数。比较函数接受两个参数,如果第一个参数应该位于第二个参数之前则返回一个负数,如果两个函数相等则返回0,如果第一个参数应该位于第二个之后则返回一个正数。var values = [0,1,5,10,15];values.sort(function(val 阅读全文
posted @ 2012-07-03 17:26 雨知 阅读(2226) 评论(2) 推荐(0) 编辑
摘要:Json散列对象K/V最后一个逗点是不能加的var param = { id : 1, name : 1, pwd : 111111,}Json,K/V最后一个逗点,是很容易出错的,而且不容易被发现。网上查了一下,在IE6/7下对Json的检查比较严格,浏览器会解析报错,造成后面JavaScript代码无法运行;而Firfox,Chrome,IE8+对Json解析比较宽松,这种情况不会报错。所以写的时候一定要按标准的写法,否则会带来浏览器兼容的问题,而且在IE6下调试JS非常不方便,费很大劲才能找到错误。PS:国产浏览器sougou,TT等,用的是IE6/7的内核,也会发生这类错误 阅读全文
posted @ 2012-06-24 16:53 雨知 阅读(4498) 评论(1) 推荐(2) 编辑
摘要:工作中遇到情形如下:一个ul标签,里面有很多li标签,其中有一个代表初始化已选中的<li class="li-on"><li>。如果ul设置了高度,如下面的ul的style,并且有很多li子标签,那选中的li就被淹没在滚动条下面。<ul id="ul_module" style="height:180px; overflow-y:scroll;"> <li>...</li> <li>...</li> <li>...</li> & 阅读全文
posted @ 2012-06-24 16:50 雨知 阅读(13263) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示